Insulin Management

ABSTRACT

A method of administering insulin includes receiving blood glucose measurements of a patient at a data processing device from a glucometer. Each blood glucose measurement is separated by a time interval and includes a blood glucose time associated with a time of measuring the blood glucose measurement. The method also includes receiving patient information at the data processing device and selecting a subcutaneous insulin treatment for tube-fed patients from a collection of subcutaneous insulin treatments. The selection is based on the blood glucose measurements and the patient information. The subcutaneous insulin treatment program for tube-fed patients determines recommended insulin doses based on the blood glucose times. The method also includes executing, using the data processing device, the selected subcutaneous insulin treatment.

CROSS REFERENCE TO RELATED APPLICATIONS

This U.S. patent application is a continuation of, and claims priorityunder 35 U.S.C. § 120 from, U.S. patent application Ser. No. 15/862,310,filed on Jan. 4, 2018, which is a continuation of U.S. patentapplication Ser. No. 14/524,756, filed on Oct. 27, 2014, which claimspriority under 35 U.S.C. § 119(e) to U.S. Provisional Application61/934,300, filed on Jan. 31, 2014, and U.S. Provisional Application62/009,575, filed on Jun. 9, 2014. The disclosures of these priorapplications are considered part of the disclosure of this applicationand are hereby incorporated by reference in their entireties.

TECHNICAL FIELD

This disclosure relates to a system for managing insulin administrationor insulin dosing.

BACKGROUND

Today, nearly 40% of patients admitted to acute care hospitals in theUnited States experience either hyperglycemia or hypoglycemia, bothserious medical conditions. Many of these patients have diabetes whileothers have fluctuating blood sugars due to trauma, drug reactions,stress and other factors. Nurses and doctors managing these patientsmanually calculate insulin doses using complex paper protocols.

Manual calculation may not be accurate due to human error, which canlead to patient safety issues. Different institutions use multiple andsometimes conflicting protocols to manually calculate an insulin dosage.Moreover, the protocols may include extra paperwork that nurses andphysicians have to manage, which in turn leads to workflowinefficiencies, additional operating costs, and employee satisfactionissues. SCIP (Surgical Care Improvement Project) scores, length of stay,readmission and even mortality rates adversely affect sub-optimalglycemic management.

The prevalent method of regulating continuous intravenous insulininfusion is by using a set of written instructions, known as a paperprotocol. Paper protocols often involve a tree of conditional statementsand some use of tables of numbers, for which a given blood glucose valuedictates the use of a different column of insulin rates. The complexityof these paper protocols multiplies the probability of error by thenurses using them. These errors can lead to hypoglycemic events.

SUMMARY

One aspect of the disclosure provides a method of administering insulin.The method includes receiving blood glucose measurements of a patient ata data processing device from a glucometer. The blood glucosemeasurements are separated by a time interval and include a bloodglucose time associated with a time of measuring the blood glucosemeasurement. The method also includes receiving patient information atthe data processing device. The method includes selecting, using thedata processing device, a subcutaneous insulin treatment program fortube-fed patients from a collection of subcutaneous insulin treatments.The selection is based on the blood glucose measurements and the patientinformation. The subcutaneous insulin treatment program for tube-fedpatients determines the recommended insulin doses based on the bloodglucose times. The method also includes executing, using the dataprocessing device, the selected subcutaneous insulin treatment fortube-fed patients.

Implementations of the disclosure may include one or more of thefollowing optional features. In some implementations, the methodincludes: receiving, at the data processing device, a configurableconstant; storing the configurable constant in non-transitory memoryassociated with the data processing device; and determining a correctionfactor using the data processing device. The configurable constant maybe determined from a published statistical correlation. The method mayalso include determining a pre-meal correction bolus, using the dataprocessing device. The method may include determining, using the dataprocessing device, a post-prandial correction bolus. The method may alsoinclude receiving, at the data processing device, a half-life value ofthe rapid-acting insulin; and determining, using the data processingdevice, the mean lifetime of the rapid-acting insulin.

In some implementations, the method includes receiving, at the dataprocessing device, a governing blood glucose value, and determining,using the data processing device, an adjustment factor based on thereceived governing blood glucose value. Determining the adjustmentfactor may include determining when the governing blood glucose value iswithin a pre-configured range of values, and setting the adjustmentfactor to a preconfigured adjustment factor associated with thepre-configured range of values. Determining the adjustment factor mayfurther include determining the governing blood glucose value is withinone of multiple pre-configured ranges of values and setting theadjustment factor to a pre-configured adjustment factor associated withthe pre-configured range of values that includes the governing bloodglucose value. In some implementations, the method includes determining,using the data processing device, a Carbohydrate-to-Insulin Ratio basedon the adjustment factor.

The subcutaneous insulin treatment program for tube-fed patientsincludes receiving, at the processing device, a blood glucose timeassociated with a time of measuring of the blood glucose measurement anddetermining, using the data processing device, if the blood glucose timeis within a pre-configured time interval. The method further includessetting a timer for a next blood glucose measurement based on thepre-configured time interval and determining, using the data processingdevice, a correction insulin does based on the blood glucose time. Insome implementations, the pre-configured time interval includes one ofsix pre-configured time intervals each spaced four hours apart from thenext beginning at 00:00, or one of four pre-configured time intervalseach spaced six hours apart from the next beginning at 00:00.

In some examples, the method includes, when the blood glucose time iswithin a first one of four pre-configured time intervals each spaced sixhours apart from the next: setting, using the data processing device,the blood glucose measurement as a governing blood glucose value;determining, using the data processing device, an adjustment factor foradjusting a value of recommended equal-boluses based on the governingblood glucose value; and retrieving, using the data processing device, aprevious day's value of recommended equal-boluses. The method furtherincludes determining, using the data processing device, a new value ofrecommended equal-boluses by multiplying the adjustment factor times theprevious day's value of recommended equal-boluses. The new value ofrecommended equal-boluses corresponds to an insulin dose of rapid-actinginsulin or regular insulin to be administered to the patient atscheduled blood glucose measurements.

In some implementations, the method includes, when the blood glucose iswithin a second one of four pre-configured time intervals each spacedsix hours apart from the next: setting, using the data processingdevice, the blood glucose measurement as a governing blood glucosevalue; determining, using the data processing device, an adjustmentfactor for adjusting a current day's recommended basal dose based on thegoverning blood glucose value; and retrieving, using the data processingdevice, a previous day's recommended basal dose. The method furtherincludes determining, using the data processing device, the currentday's recommended basal dose by multiplying the adjustment factor timesthe previous day's recommended basal dose. The current day's recommendedbasal dose corresponds to an insulin does of long-acting insulin to beadministered to the patient at a configurable frequency of one, two, orthree times per day.

When the blood glucose time is within a third of one of sixpre-configured time intervals each spaced four hours apart from thenext, the method includes: setting, using the data processing device,the blood glucose measurement as a governing blood glucose value;determining, using the data processing device, an adjustment factor foradjusting a current day's recommended basal dose based on the governingblood glucose value; and retrieving, using the data processing device, aprevious day's recommended basal dose. The method further includesdetermining, using the data processing device, the current day'srecommended basal dose by multiplying the adjustment factor times theprevious day's recommended basal dose. The current day's recommendedbasal dose corresponds to an insulin dose of long-acting insulin to beadministered to the patient at a configurable frequency of one, two, orthree times per day.

In some examples, the method further includes transmitting thesubcutaneous insulin treatment program for tube-fed patients to anadministration device in communication with the data processing device.The administration device includes a doser and an administrationcomputing device in communication with the doser. The administrationcomputing device, when executing the subcutaneous insulin treatmentprogram for tube-fed patients, causes the doser to administer therecommended doses of insulin determined by the subcutaneous insulintreatment program for tube-fed patients. The administration deviceincludes at least one of an insulin injection pen or an insulin pump.

Another aspect of the disclosure provides a system for administeringinsulin. The system includes a glucometer measuring blood glucose of apatient at separate time interval and a dosing controller incommunication with the glucometer. The dosing controller includes a dataprocessing device and non-transitory memory in communication with thedata processing device. The dosing controller receives blood glucosemeasurements of a patient from the glucometer, receives patientinformation, selects a subcutaneous insulin treatment from a collectionof subcutaneous insulin treatments based on the blood glucosemeasurements and the patient information, and executes the selectedsubcutaneous insulin treatment. Each blood glucose measurement isseparated by a time interval and includes a blood glucose timeassociated with a time of measuring the blood glucose measurement.

The dosing controller may further determine a pre-meal correction bolusand determine a post-prandial correction bolus. In some implementations,the dosing controller receives a half-life value of the rapid-actinginsulin (e.g., from an external computing device or manually entered viaa user interface) and determines the mean lifetime of the rapid-actinginsulin.

In some examples, the dosing controller receives a governing bloodglucose value (e.g., from an external computing device or manuallyentered via a user interface) and determines an adjustment factor basedon the received governing blood glucose value. The dosing controller mayfurther determine the adjustment factor by determining when thegoverning blood glucose value is within a pre-configured range of valuesand set the adjustment factor to a pre-configured adjustment factorassociated with the pre-configured range of values that includes thegoverning blood glucose value. The dosing controller further determinesa carbohydrate-to-insulin ratio based on the adjustment factor.

In some implementations, during the subcutaneous insulin treatmentprogram for tube-fed patients, the dosing controller receives a bloodglucose time associated with a time of measuring the blood glucosemeasurement and determines if the blood glucose time is within apre-configured time interval. The dosing controller further sets a timefor a next blood glucose measurement based on the pre-configured timeinterval and determines a correction insulin dose based on the bloodglucose type. The pre-configured time interval includes one of sixpre-configured time intervals each spaced four hours apart from the nextbeginning at 00:00 or one of four pre-configured time intervals eachspaced six hours apart from the next beginning at 00:00.

In some examples, when the blood glucose time is within a first one offour pre-configured time intervals each spaced six hours apart from thenext, the dosing controller sets the blood glucose measurement as agoverning blood glucose value and determines an adjustment factor foradjusting a value of recommended equal-boluses based on the governingblood glucose value. The dosing controller further retrieves a previousday's value of recommended equal-boluses and determines a new value ofrecommended equal-boluses by multiplying the adjustment factor times theprevious day's value of recommended equal-boluses. The new value ofrecommended equal-boluses corresponds to an insulin dose of rapid-actinginsulin or regular insulin to be administered to the patient atscheduled blood glucose measurements.

When the blood glucose time is within a second one of six pre-configuredtime intervals each spaced four hours apart from the next, the dosingcontroller sets the blood glucose measurement as a governing bloodglucose value. The dosing controller further determines an adjustmentfactor for adjusting a value of recommended equal-boluses based on thegoverning blood glucose value, retrieves a previous day's value ofrecommended equal-boluses and determines a new value of recommendedequal-boluses by multiplying the adjustment factor times the previousday's value of recommended equal-boluses. The new value of recommendedequal-boluses corresponds to an insulin dose of rapid-acting insulin orregular insulin to be administered to the patient at scheduled bloodglucose measurements. When the blood glucose time is within a second oneof six pre-configured time intervals each spaced four hours apart fromthe next, the dosing controller sets the blood glucose measurement as agoverning blood glucose value and determines an adjustment factor foradjusting a current day's recommended basal dose based on the governingblood glucose value. The dosing controller further retrieves a previousday's recommended basal dose and determines the current day'srecommended basal dose by multiplying the adjustment factor times theprevious day's recommended basal dose. The current day's recommendedbasal dose corresponding to an insulin dose of long-acting insulin to beadministered to the patient at a configurable frequency of one, two, orthree times per day.

When the blood glucose time is within a second one of six pre-configuredtime intervals each spaced four hours apart from the next, the dosingcontroller sets the blood glucose measurement as a governing bloodglucose value and determines an adjustment factor for adjusting acurrent day's recommended basal dose based on the governing bloodglucose value. The dosing controller further retrieves a previous day'srecommended basal dose and determines the current day's recommendedbasal dose by multiplying the adjustment factor times the previous day'srecommended basal dose. The current day's recommended basal dosecorresponds to an insulin dose of long-acting insulin to be administeredto the patient at a configurable frequency of one, two, or three timesper day.

The dosing controller transmits the subcutaneous insulin treatmentprogram for tube-fed patients to an administration device incommunication with the dosing controller. The administration deviceincludes a doser and an administration computing device in communicationwith the doser. The administration device, when executing the selectedsubcutaneous insulin treatment, causes the doser to administer therecommended doses of insulin determined by the subcutaneous insulintreatment program for tube-fed patients. The administration deviceincludes at least one of an insulin injection pen or an insulin pump.

The details of one or more implementations of the disclosure are setforth in the accompanying drawings and the description below. Otheraspects, features, and advantages will be apparent from the descriptionand drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1A is a schematic view of an exemplary system for monitoring bloodglucose level of a patient.

FIG. 1B is a schematic view of an exemplary system for monitoring bloodglucose level of a patient.

FIG. 1C is a schematic view of an exemplary administration device incommunication with a dosing controller.

FIG. 2A is a schematic view of an exemplary process for monitoring theblood glucose level of a patient.

FIG. 2B is a schematic view of an exemplary display for inputtingpatient information.

FIG. 2C is a schematic view of an exemplary display for selecting apatient from a list of patients.

FIG. 3 is a schematic view of an exemplary dose calculation process ofFIG. 2A.

FIG. 4A is a schematic view of an exemplary calculation of theintravenous time interval of FIG. 2A.

FIGS. 4B and 4C are schematic views of an exemplary display showing thetime a next blood glucose measurement is due.

FIG. 4D is a schematic view of an exemplary display for inputtingpatient information.

FIG. 4E is a schematic view of an exemplary display of patientinformation and a timer for a patient's next blood glucose measurement.

FIGS. 5A and 5B are schematic views of an exemplary meal bolus processof FIG. 2A.

FIGS. 5C and 5D are schematic views of exemplary displays requestinginformation from the user.

FIGS. 6A and 6B are schematic views of an exemplary subcutaneoustransition process of FIG. 2A.

FIG. 6C is a schematic view of an exemplary warning to the user relatingto the patient.

FIG. 6D is a schematic view of an exemplary display inquiring whetherthe patient should continue treatment or stop.

FIG. 6E is a schematic view of an exemplary display requestinginformation from the user relating to the patient.

FIG. 6F is a schematic view of an exemplary display showing therecommended dose of insulin.

FIG. 6G is a schematic view of an exemplary view to the user relating totransitioning a patient to subcutaneous delivery.

FIG. 7 is a schematic view of an exemplary correction boluses process.

FIG. 8 is a schematic view of an exemplary adjustment factor process.

FIGS. 9A and 9B are a schematic view of an exemplary subcutaneousstandard program.

FIGS. 9C-9E are schematic views of exemplary displays requestinginformation from the user relating to the patient.

FIG. 10 is a schematic view of an exemplary subcutaneous for tube-fedpatients process.

FIG. 11 is a schematic view of an exemplary subcutaneous process withoutmeal boluses.

FIGS. 12A and 12B are a schematic view of an exemplary meal-by-mealsubcutaneous process without carbohydrate counting.

FIGS. 13A and 13B are a schematic view of an exemplary meal-by-mealsubcutaneous process with carbohydrate counting.

FIGS. 14A and 14B are a schematic view of an exemplary subcutaneousnon-diabetic process.

FIG. 15 is a schematic view of an exemplary arrangement of operationsfor administering insulin.

FIG. 16 is a schematic view of an exemplary arrangement of operationsfor administering insulin.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Diabetic hospital patients who eat meals often have poor appetites;consequently, co-ordination of meal boluses and meals is difficult. Mealboluses without meals cause hypoglycemia; meals without meal bolusescause hyperglycemia. Different providers may use different methods ofadjusting doses: some may use formulas of their own; some may use paperprotocols that are complex and difficult for the nurse to follow,leading to a high incidence of human error; and some may use heuristicmethods. There is no guarantee of consistency. Moreover, for diabeticpatients who do not eat meals, there is no currently no computerizedmethod of tracking the patient's status. For non-diabetic patient whoget include due to “stress hyperglycemia” when they are very sick orundergoing surgery, there is no current method of monitoring theirrecovery when the stress subsides and their need for insulin rapidlydecreases. If the dose regimen does not decrease rapidly also,hypoglycemia may result. Therefore, it is desirable to have a clinicalsupport system 100 (FIGS. 1A and 1B) that monitors patients' bloodglucose level.

Referring to FIG. 1A-1C, in some implementations, a clinical decisionsupport system 100 analyzes inputted patient condition parameters for apatient 10 and calculates a personalized dose of insulin to bring andmaintain the patient's blood glucose level into a target range BG_(TR).Moreover, the system 100 monitors the glucose levels of a patient 10 andcalculates recommended intravenous or subcutaneous insulin dose to bringthe patient's blood glucose into the preferred target range BG_(TR) overa recommended period of time. A qualified and trained healthcareprofessional 40 may use the system 100 along with clinical reasoning todetermine the proper dosing administered to a patient 10. Therefore, thesystem 100 is a glycemic management tool for evaluation a patient'scurrent and cumulative blood glucose value BG while taking intoconsideration the patient's information such as age, weight, and height.The system 100 may also consider other information such as carbohydratecontent of meals, insulin doses being administered to the patient 10,e.g., long-acting insulin doses for basal insulin and rapid-actinginsulin doses for meal boluses and correction boluses. Based on thosemeasurements (that may be stored in non-transitory memory 24, 114, 144),the system 100 recommends an intravenous dosage of insulin, glucose, orsaline or a subcutaneous basal and bolus insulin dosing recommendationor prescribed dose to adjust and maintain the blood glucose leveltowards a configurable (based on the patient's information) physician'sdetermined blood glucose target range BG_(TR). The system 100 alsoconsiders a patient's insulin sensitivity or improved glycemicmanagement and outcomes. The system 100 may take into account pertinentpatient information such as demographics and previous results, leadingto a more efficient use of healthcare resources. Finally, the system 100provides a reporting platform for reporting the recommendations orprescribed dose(s) to the user 40 and the patient 10. In addition, fordiabetic patients who eat meals, the system 100 provides faster, morereliable, and more efficient insulin administration than a humanmonitoring the insulin administration. The system 100 reduces theprobability of human error and insures consistent treatment, due to thesystem's capability of storing and tracking the patient's blood glucoselevels BG, which may be used for statistical studies. As for patientswho are tube-fed or do not eat meals, the system 100 provides dedicatedsubprograms, which in turn provide basal insulin and correction bolusesbut no meal boluses. Patients who are tube-fed or who do not eat usuallyhave a higher basal insulin level than patients who eat, because thecarbohydrates in the nutritive formula are accounted—for in the basalinsulin. The system 100 provides a meal-by-meal adjustment of MealBoluses without carbohydrate counting, by providing a dedicatedsubprogram that adjusts meal boluses based on the immediately precedingmeal bolus and the BG that followed it. The system 100 provides ameal-by-meal adjustment of Meal Boluses with carbohydrate counting byproviding a dedicated subprogram that adjusts meal boluses based aCarbohydrate-to-Insulin Ratio (CIR) that is adjusted at each meal, basedon the CIR used at the immediately preceding meal bolus and the BG thatfollowed it.

Hyperglycemia is a condition that exists when blood sugars are too high.While hyperglycemia is typically associated with diabetes, thiscondition can exist in many patients who do not have diabetes, yet haveelevated blood sugar levels caused by trauma or stress from surgery andother complications from hospital procedures. Insulin therapy is used tobring blood sugar levels back into a normal range.

Hypoglycemia may occur at any time when a patient's blood glucose levelis below a preferred target. Appropriate management of blood glucoselevels for critically ill patients reduces co-morbidities and isassociated with a decrease in infection rates, length of hospital stay,and death. The treatment of hyperglycemia may differ depending onwhether or not a patient has been diagnosed with Type 1 diabetesmellitus, Type 2 diabetes mellitus, gestational diabetes mellitus, ornon-diabetic stress hyperglycemia. The blood glucose target rangeBG_(TR) is defined by a lower limit, i.e., a low target BG_(TRL) and anupper limit, i.e., a high target BG_(TRH).

Stress-related hyperglycemia: Patients often get “stress hyperglycemia”if they are very sick or undergoing surgery. This condition requiresinsulin. In diabetic patients, the need for insulin is visiblyincreased. In non-diabetic patients, the stress accounts for the onlyneed for insulin, and as the patients recover, the stress subsides, andtheir need for insulin rapidly decreases. For non-diabetic patients, theconcern is that their need for insulin decreases faster than their doseregimen, leading to hypoglycemia.

Diabetes Mellitus has been treated for many years with insulin. Somerecurring terms and phrases are described below:

Injection: Administering insulin by means of manual syringe or aninsulin “pen,” with a portable syringe named for its resemblance to thefamiliar writing implement.

Infusion: Administering insulin in a continuous manner by means of aninsulin pump for subcutaneous insulin or an intravenous apparatus 123 a,both of which are capable of continuous administration.

Intravenous Insulin Therapy: Intravenous infusion of insulin has beenapproved by the U.S. Food and Drug Administration as an acceptableindication for use. Intravenous infusion is the fastest of all insulinadministration routes and, typically, only available in the hospitalsetting. For instance, in intensive care units, the patients may be fedby intravenous glucose infusion, by intravenous Total ParenteralNutrition (TPN), or by a tube to the stomach. Patients are often giveninsulin in an intravenous infusion at an insulin infusion rate IIR. TheIIR is regulated by the frequent testing of blood glucose, typically atintervals between about 20 minutes and 2 hours. This is combined with aprotocol in which a new IIR is computed after each blood glucose test.

Basal-Bolus Therapy: Basal-bolus therapy is a term that collectivelyrefers to any insulin regimen involving basal insulin and boluses ofinsulin.

Basal Insulin: Insulin that is intended to metabolize the glucosereleased by a patient's the liver during a fasting state. Basal insulinis administered in such a way that it maintains a background level ofinsulin in the patient's blood, which is generally steady but may bevaried in a programmed manner by an insulin pump 123 a. Basal insulin isa slow, relatively continuous supply of insulin throughout the day andnight that provides the low, but present, insulin concentrationnecessary to balance glucose consumption (glucose uptake and oxidation)and glucose production (glucogenolysis and gluconeogenesis). A patient'sBasal insulin needs are usually about 10 to 15 mU/kg/hr and account for30% to 50% of the total daily insulin needs; however, considerablevariation occurs based on the patient 10.

Bolus Insulin: Insulin that is administered in discrete doses. There aretwo main types of boluses, Meal Bolus and Correction Bolus.

Meal Bolus: Taken just before a meal in an amount which is proportionalto the anticipated immediate effect of carbohydrates in the mealentering the blood directly from the digestive system. The amounts ofthe Meal Boluses may be determined and prescribed by a physician 40 foreach meal during the day, i.e., breakfast, lunch, and dinner.Alternatively, the Meal Bolus may be calculated in an amount generallyproportional to the number of grams of carbohydrates in the meal. Theamount of the Meal Bolus is calculated using a proportionality constant,which is a personalized number called the Carbohydrate-to-Insulin Ratio(CIR) and calculated as follows:

Meal Insulin Bolus={grams of carbohydrates in the meal}/CIR  (1)

Correction Bolus CB: Injected immediately after a blood glucosemeasurement; the amount of the correction bolus is proportional to theerror in the BG (i.e., the bolus is proportional to the differencebetween the blood glucose measurement BG and the patient's personalizedTarget blood glucose BG_(Target)). The proportionality constant is apersonalized number called the Correction Factor, CF, and is calculatedas follows:

CB=(BG−BG_(Target))/CF  (2)

A Correction Bolus CB is generally administered in a fasting state,after the previously consumed meal has been digested. This oftencoincides with the time just before the next meal.

There are several kinds of Basal-Bolus insulin therapy including InsulinPump therapy and Multiple Dose Injection therapy:

Insulin Pump Therapy: An insulin pump 123 a is a medical device used forthe administration of insulin in the treatment of diabetes mellitus,also known as continuous subcutaneous insulin infusion therapy. Thedevice includes: a pump, a disposable reservoir for insulin, and adisposable infusion set. The pump 123 a is an alternative to multipledaily injections of insulin by insulin syringe or an insulin pen andallows for intensive insulin therapy when used in conjunction with bloodglucose monitoring and carbohydrate counting. The insulin pump 123 a isa battery-powered device about the size of a pager. It contains acartridge of insulin, and it pumps the insulin into the patient via an“infusion set”, which is a small plastic needle or “canula” fitted withan adhesive patch. Only rapid-acting insulin is used.

Multiple Dose Injection (MDI): MDI involves the subcutaneous manualinjection of insulin several times per day using syringes or insulinpens 123 b. Meal insulin is supplied by injection of rapid-actinginsulin before each meal in an amount proportional to the meal. Basalinsulin is provided as a once, twice, or three time daily injection of adose of long-acting insulin. Other dosage frequencies may be available.Advances continue to be made in developing different types of insulin,many of which are used to great advantage with MDI regimens:

Long-acting insulins are non-peaking and can be injected as infrequentlyas once per day. These insulins are widely used for Basal Insulin. Theyare administered in dosages that make them appropriate for the fastingstate of the patient, in which the blood glucose is replenished by theliver to maintain a steady minimum blood glucose level.

Rapid-acting insulins act on a time scale shorter than natural insulin.They are appropriate for boluses.

In some examples, critically ill patients are ordered nil per os (NPO),which means that oral food and fluids are withheld from the patient 10.Typically these patients 10 are unconscious, have just completed aninvasive surgical procedure, or generally have difficulty swallowing.Intravenous insulin infusion is typically the most effective method ofmanaging blood glucose levels in these patients. A patient 10 may be NPOand receiving a steady infusion of intravenous glucose, Total ParenteralNutrition, tube feeding, regular meals that include carbohydrates, ornot receiving any nutrition at all. In cases where the patient 10 is notreceiving any nutrition, blood glucose is typically replaced byendogenous production by the liver.

As a patient's condition improves, an NPO order may be lifted, allowingthe patient 10 to commence an oral caloric intake. In patients 10 withglycemic abnormalities, additional insulin may be needed to cover theconsumption of carbohydrates. These patients 10 generally receiveone-time injections of insulin in the patient's subcutaneous tissue.

Subcutaneous administration of mealtime insulin in critically illpatients 10 can introduce a patient safety risk if, after receiving theinsulin injection, the patient 10 decides not to eat, is unable tofinish the meal, or experiences emesis.

Continuous intravenous infusion of mealtime insulin, over apredetermined time interval, allows for an incremental fulfillment ofthe patient's mealtime insulin requirement, while minimizing patientsafety risks. If a patient 10 decides he/she is unable to eat, thecontinuous intravenous infusion may be stopped or, if a patient 10 isunable to finish the meal, the continuous intravenous infusion rate maybe decreased to compensate for the reduction in caloric intake.

The pharmacokinetics (what the body does to a drug over a period oftime, which includes the processes of absorption, distribution,localization in tissues, biotransformation, and excretion) andpharmacodynamics (what a drug does to the body) actions of insulinsignificantly improve when administering insulin via an intravenousroute, which is a typical method of delivery for hospitalized patients10. The management of prandial insulin requirements using an intravenousroute can improve patient safety, insulin efficiency, and the accuracyof insulin dosing. The majority of patients who require continuousintravenous insulin infusion therapy may also need to be transitioned toa subcutaneous insulin regimen for ongoing control of blood glucose,regardless of diabetes mellitus (DM) diagnosis. Moreover, the timing,dosing, and process to transition patients 10 from a continuousintravenous route of insulin administration to a subcutaneous insulinregimen is complex and should be individualized based on various patientparameters. Failure to individualize this approach could increase therisk of severe hypoglycemia during the transition process. If not enoughinsulin is given, the patient 10 may experience acute post-transitionhyperglycemia, requiring re-initiation of a continuous intravenousinsulin infusion. Therefore, the clinical decision support system 100calculates a personalized dose of insulin to bring and maintain thepatient's blood glucose level into a target range BG_(TR), while takinginto consideration the condition of the patient 10.

The clinical decision support system 100 includes a glycemic managementmodule 50, an integration module 60, a surveillance module 70, and areporting module 80. Each module 50, 60, 70, 80 is in communication withthe other modules 50, 60, 70, 80 via a network 20. In some examples, thenetwork 24 (discussed below) provides access to cloud computingresources that allows for the performance of services on remote devicesinstead of the specific modules 50, 60, 70, 80. The glycemic managementmodule 50 executes a process 200 (e.g., an executable instruction set)on a processor 112, 132, 142 or on the cloud computing resources. Theintegration module 60 allows for the interaction of users 40 with thesystem 100. The integration module 60 receives information inputted by auser 40 and allows the user 40 to retrieve previously inputtedinformation stored on a storage system (e.g., one or more of cloudstorage resources 24, a non-transitory memory 144 of a hospital'selectronic medical system 140, a non-transitory memory 114 of thepatient device 110, or other non-transitory storage media incommunication with the integration module 60). Therefore, theintegration module 60 allows for the interaction between the users 40and the system 100 via a display 116, 146. The surveillance module 70considers patient information 208 a received from a user 40 via theintegration module 60 and information received from a glucometer 124that measures a patient's blood glucose value BG and determines if thepatient 10 is within a threshold blood glucose value BG_(TH). In someexamples, the surveillance module 70 alerts the user 40 if a patient'sblood glucose values BG are not within a threshold blood glucose valueBG_(TH). The surveillance module 70 may be preconfigured to alert theuser 40 of other discrepancies between expected values and actual valuesbased on pre-configured parameters (discussed below). For example, whena patient's blood glucose value BG drops below a lower limit of thethreshold blood glucose value BG_(THL). The reporting module 80 may bein communication with at least one display 116, 146 and providesinformation to the user 40 determined using the glycemic managementmodule 50, the integration module 60, and/or the surveillance module 70.In some examples, the reporting module 80 provides a report that may bedisplayed on a display 116, 146 and/or is capable of being printed.

The system 100 is configured to evaluate a glucose level and nutritionalintake of a patient 10. The system 100 also evaluates whether thepatient 10 is transitioning to a subcutaneous insulin regime. Based onthe evaluation and analysis of the data, the system 100 calculates aninsulin dose, which is administered to the patient 10 to bring andmaintain the blood glucose level of the patient 10 into the bloodglucose target range BG_(TR). The system 100 may be applied to variousdevices, including, but not limited to, intravenous infusion pumps 123a, subcutaneous insulin infusion pumps 123 a, glucometers, continuousglucose monitoring systems, and glucose sensors. In someimplementations, as the system 100 is monitoring the patient's bloodglucose values BG and the patient's insulin intake, the system 100notifies the user 40 if the patient 10 receives more than 500 units/hourof insulin because the system 100 considers these patients 10 to beinsulin resistant.

In some examples the clinical decision support system 100 includes anetwork 20, a patient device 110, a dosing controller 160, and a serviceprovider 130. The patient device 110 may include, but is not limited to,desktop computers or portable electronic device (e.g., cellular phone,smartphone, personal digital assistant, barcode reader, personalcomputer, or a wireless pad) or any other electronic device capable ofsending and receiving information via the network 20.

The patient device 110 includes a data processor 112 (e.g., a computingdevice that executes instructions), and non-transitory memory 114 and adisplay 116 (e.g., touch display or non-touch display) in communicationwith the data processor 112. In some examples, the patient device 110includes a keyboard 118, speakers 212, microphones, mouse, and a camera.

The service provider 130 may include a data processor 132 incommunication with non-transitory memory 134. The service provider 130provides the patient 10 with a process 200 (see FIG. 2) (e.g., a mobileapplication, a web-site application, or a downloadable program thatincludes a set of instructions) executable on a processor 112, 132, 142of the dosing controller 160 and accessible through the network 20 viathe patient device 110, intravenous infusion pumps 123 a, hospitalelectronic medical record systems 140, or portable blood glucosemeasurement devices 124 (e.g., glucose meter or glucometer). Intravenousinfusion pumps infuse fluids, medication or nutrients into a patient'scirculatory system. Intravenous infusion pumps 123 a may be usedintravenously and, in some instances, subcutaneous, arterial andepidural infusions are used. Intravenous infusion pumps 123 a typicallyadminister fluids that are expensive or unreliable if administeredmanually (e.g., using a pen 123 b) by a nurse or doctor 40. Intravenousinfusion pumps 123 a can administer a 0.1 ml per hour injection,injections every minute, injections with repeated boluses requested bythe patient, up to a maximum number per hours, or fluids whose volumesvary by the time of day.

In some implementations, an electronic medical record system 140 islocated at a hospital 42 (or a doctor's office) and includes a dataprocessor 142, a non-transitory memory 144, and a display 146 (e.g.,touch display or non-touch display). The transitory memory 144 and thedisplay 146 are in communication with the data processor 142. In someexamples, the hospital electronic medical system 140 includes a keyboard148 in communication with the data processor 142 to allow a user 40 toinput data, such as patient information 208 a (FIGS. 2A and 2B). Thenon-transitory memory 144 maintains patient records capable of beingretrieved, viewed, and, in some examples, modified and updated byauthorized hospital personal on the display 146.

The dosing controller 160 is in communication with the glucometer 124and includes a computing device 112, 132, 142 and non-transitory memory114, 134, 144 in communication with the computing device 112, 132, 142.The dosing controller 160 executes the process 200. The dosingcontroller 160 stores patient related information retrieved from theglucometer 124 to determine an insulin dose rate IRR based on thereceived blood glucose measurement BG.

Referring to FIG. 1C, in some implementations, the insulin device 123(e.g., administration device), in communication with the dosingcontroller 160, capable of executing instructions for administeringinsulin according to a subcutaneous insulin treatment program selectedby the dosing controller 160. The administration device 123 may includethe insulin pump 123 a or the pen 123 b. The administration device 123is in communication with the glucometer 124 and includes a computingdevice 112 a, 112 b and non-transitory memory 114 a, 114 b incommunication with the computing device 112 a, 112 b. The administrationdevice 123 includes a doser 223 a, 223 b in communication with theadministration computing device 112 a, 112 b for administering insulinto the patient. For instance, the doser 223 a of the insulin pump 123 aincludes an infusion set including a tube in fluid communication with aninsulin reservoir and a cannula inserted into the patient's 10 body andsecured via an adhesive patch. The doser 223 b of the pen 123 b includesa needle for insertion into the patient's 10 body for administeringinsulin from an insulin cartridge. The administration device 123 mayreceive a subcutaneous insulin treatment program selected by andtransmitted from the dosing controller 160, while the administrationcomputing device 112 a, 112 b may execute the subcutaneous insulintreatment program. Executing the subcutaneous insulin treatment programby the administration computing device 112 a, 112 b causes the doser 223a, 223 b to administer doses of insulin specified by the subcutaneousinsulin treatment program. For instance, units for the doses of insulinmay be automatically set or dialed in by the administration device 123a, 123 b and administered via the doser 223 a, 223 b to the patient 10.

The network 20 may include any type of network that allows sending andreceiving communication signals, such as a wireless telecommunicationnetwork, a cellular telephone network, a time division multiple access(TDMA) network, a code division multiple access (CDMA) network, Globalsystem for mobile communications (GSM), a third generation (3G) network,fourth generation (4G) network, a satellite communications network, andother communication networks. The network 20 may include one or more ofa Wide Area Network (WAN), a Local Area Network (LAN), and a PersonalArea Network (PAN). In some examples, the network 20 includes acombination of data networks, telecommunication networks, and acombination of data and telecommunication networks. The patient device110, the service provider 130, and the hospital electronic medicalrecord system 140 communicate with each other by sending and receivingsignals (wired or wireless) via the network 20. In some examples, thenetwork 20 provides access to cloud computing resources, which may beelastic/on-demand computing and/or storage resources 24 available overthe network 20. The term ‘cloud’ services generally refers to a serviceperformed not locally on a user's device, but rather delivered from oneor more remote devices accessible via one or more networks 20.

Referring to FIGS. 1B and 2A-2C, the process 200 receives parameters(e.g., patient condition parameters) inputted via the client device 110,the service provider 130, and/or the hospital system 140, analyzes theinputted parameters, and determines a personalized dose of insulin tobring and maintain a patient's blood glucose level BG into a preferredtarget range BG_(TR).

In some implementations, before the process 200 begins to receive theparameters, the process 200 may receive a username and a password (e.g.,at a login screen displayed on the display 116, 146) to verify that aqualified and trained healthcare professional 40 is initiating theprocess 200 and entering the correct information that the process 200needs to accurately administer insulin to the patient 10. The system 100may customize the login screen to allow a user 40 to reset theirpassword and/or username. Moreover, the system 100 may provide a logoutbutton (not shown) that allows the user 40 to log out of the system 100.The logout button may be displayed on the display 116, 146 at any timeduring the execution of the process 200.

The clinical decision support system 100 may include an alarm system 120that alerts a user 40 when the patient's blood glucose level BG isoutside the target range BG_(TR). The alarm system 120 may produce anaudible sound via speaker 122 in the form of a beep or some like audiosounding mechanism. In some examples, the alarm system 120 displays awarning message or other type of indication on the display 116 of thepatient device 110 to provide a warning message. The alarm system 120may also send the audible and/or visual notification via the network 20to the hospital system 140 (or any other remote station) for display onthe display 146 of the hospital system 140 or played through speakers152 of the hospital system 140.

The process 200 prompts a user 40 to input patient information 208 a atblock 208. The user 40 may input the patient information 208 a, forexample, via the user device 110 or via the hospital electronic medicalrecord systems 140 located at a hospital 42 (or a doctor's office). Theuser 40 may input new patient information 208 a as shown in FIG. 2B orretrieve previously stored patient information 208 a as shown in FIG.2C. In some implementations, the process 200 provides the user 40 with apatient list 209 (FIG. 2C) where the user 40 selects one of the patientnames from the patient list 209, and the process 200 retrieves thatpatient's information 208 a. The process 200 may allow the user 40 tofiler the patient list 209, e.g., alphabetically (first name or lastname), by location, patient identification. The process 200 may retrievethe patient information 208 a from the non-transitory memory 144 of thehospital's electronic medical system 140 or the non-transitory memory114 of the patient device 110 (e.g., where the patient information 208 awas previously entered and stored). The patient information 208 a mayinclude, but is not limited to, a patient's name, a patient'sidentification number (ID), a patient's height, weight, date of birth,diabetes history, physician name, emergency contact, hospital unit,diagnosis, gender, room number, and any other relevant information. Insome examples, the diagnosis may include, but is not limited to, burnpatients, Coronary artery bypass patients, stoke patients, diabeticketoacidosis (DKA) patients, and trauma patients. After the user 40completes inputting the patient information 208 a, the process 200 atblock 202 determines whether the patient 10 is being treated with anintravenous treatment module by prompting the user 40 (e.g., on thedisplay 116, 146) to input whether the patient 10 will be treated withan intravenous treatment module. If the patient 10 will not be treatedwith the intravenous treatment module, the process 200 determines atblock 210 whether the patient 10 will be treated with a subcutaneoustreatment module, by asking the user 40 (e.g., by prompting the user 40on the display 116, 146). If the user 40 indicates that the patient 10will be treated with the subcutaneous treatment, the process 200 flowsto block 216, where the user 40 enters patient subcutaneous information216 a, such as bolus insulin type, target range, basal insulin type andfrequency of distribution (e.g., 1 dose per day, 2 doses per day, 3doses per day, etc.), patient diabetes status, subcutaneous type orderedfor the patient (e.g., Basal/Bolus and correction that is intended forpatients on a consistent carbohydrate diet, or Basal and correction thatis intended for patients who are NPO or on continuous enteral feeds),frequency of patient blood glucose measurements, or any other relevantinformation. In some implementations, the patient subcutaneousinformation 216 a is prepopulated with default parameters, which may beadjusted or modified. When the user 40 enters the patient subcutaneousinformation 216, the subcutaneous program begins at block 226. Theprocess may determine whether the patient 10 is being treated with anintravenous treatment or a subcutaneous treatment by prompting the user40 to select between two options (e.g., a button displayed on thedisplay 116, 146), one being the intravenous treatment and the otherbegin the subcutaneous treatment. In some implementations, thesubcutaneous program (at block 226) includes six sub programs: asubcutaneous standard program (FIGS. 9A-9B); a subcutaneous for tube-fedpatients program (FIG. 10); a subcutaneous program without meal boluses(FIG. 11); a meal-by-meal subcutaneous program without carbohydratecounting (FIG. 12); a meal-by-meal subcutaneous program withcarbohydrate counting (FIGS. 13A-13B); and a subcutaneous program fornon-diabetic patients (FIG. 14).

In some implementations and referring back to block 202, if the process200 determines that the patient 10 will be treated with the intravenoustreatment module, the process 200 prompts the user 40 at block 204 forsetup data 204 a, such as patient parameters 204 a relevant to theintravenous treatment mode. In some examples, the patient parameter 204a relating to the intravenous treatment may be prepopulated, forexample, with default values that may be adjusted and modified by theuser 40. These patient parameters 204 a may include an insulinconcentration (i.e., the strength of insulin being used for theintravenous dosing, which may be measured in units/milliliter), the typeof insulin and rate being administered to the patient, the blood glucosetarget range BG_(TR), the patient's diabetes history, a number ofcarbohydrates per meal, or any other relevant information. In someimplementations, the type of insulin and the rate of insulin depend onthe BG of the patient 10. For example, the rate and type of insulinadministered to a patient 10 when the blood glucose value BG of thepatient 10 is greater or equal to 250 mgl/dl may be different than therate and type of insulin administered to the patient 10 when the bloodglucose value BG of the patient is greater than 250 ml/dl. The bloodglucose target range BG_(TR) may be a configurable parameter, customizedbased on various patient factors. The blood glucose target range BG_(TR)may be limited to 40 mg/dl (e.g., 100-140 mg/dl, 140-180 mg/dl, and120-160 mg/dl).

After the user 40 inputs patient parameters 204 a for the intravenoustreatment at block 204, the process 200 prompts the user 40 to input theblood glucose value BG of the patient 10 at block 206. The blood glucosevalue BG may be manually inputted by the user 40, sent via the network20 from a glucometer 124, sent electronically from the hospitalinformation or laboratory system 140, or other wireless device. Theprocess 200 determines a personalized insulin dose rate, referred to asan insulin infusion rate IIR, using the blood glucose value BG of thepatient 10 and a dose calculation process 300.

In some implementations, the process 200 executes on the processor 112,132, 142 the following instruction set. Other instructions are possibleas well.

{ $this−>load−>helper(‘formula’); $PatientID =$this−>input−>post(“PatientID”); $CurrentBG =$this−>input−>post(“iv_bg_input”); $Premeal =$this−>input−>post(“pre_meal”); $EstCarbs = $this−>input−>post(“carbs”);$CancelPreMeal = $this−>input−>post(“CancelPreMeal”); $PatientEat =$this−>input−>post(“patient_eat”); $ActualCarbs = 0; $MealBolus =$this−>input−>post(“MealBolus”); $MealBolusCount = 0; $LastBGData =$this−>iv−>GetLastIVBG($PatientID); $PreviousBG = $LastBGData−>BGValue;$PreviousBGRate = $LastBGData−>InsulinRate; $iir_results =$this−>CalculateIIR($PatientID, $CurrentBG, $LastBGData, $EstCarbs);$MealBolusDose = 0; $iir = $iir_results[“iir”]; $multiplier =$iir_results[“multiplier”]; $ActualCarbs = 0; $PostPlateCheck = false;$MinutesInTransition =$this−>iv− >GetTransitionMinutesInTransition($PatientID);$StartingMultiplier = $LastBGData−>SensitivityFactor;if($LastBGData−>EstNumberOfCarbs == 12 &&$LastBGData− >ActualNumberOfCarbs == 15) {$LastBGCarbsGiven = true;}else {$LastBGCarbsGiven = false;} if($PatientEat == 0 && $EstCarbs>0 &&$Premeal!= 1) { $MealBolusData =$this−>iv− >GetCurrentMealBolusInfo($PatientID); if($MealBolusData[“NumCount”]<2) { $CancelPreMeal = “yes”; } } if($Premeal == “1”) {$MealBolus = 1; $ActualCarbs = 0; $MealBolusCount = 0; } elseif($MealBolus == 1) { $MealBolus = 1; $EstCarbs =$LastBGData−>EstNumberOfCarbs; $meal_eat =$this−>input−>post(“meal_eat”); if($meal_eat==“input”) {$ActualCarbs =$this−>input−>post(“meal_eat_input_val”);} else {$ActualCarbs =$meal_eat/100*$EstCarbs;} $TimeInterval = $LastBGData−>TimeInterval ;$MealBolusCount = 1; if($ActualCarbs ==0) {$MealBolus = 0;} } else {$MealBolusData = $this−>iv− >GetCurrentMealBolusInfo($PatientID); if($MealBolusData[“NumCount”] > 0 && $MealBolusData[“NumCount”]<=2) {$MealBolus = 1; $EstCarbs = $MealBolusData[“EstNumberofCarbs”];$ActualCarbs = $MealBolusData[“ActualNumberofCarbs”]; $MealBolusCount =$MealBolusData[“NumCount”]; if($MealBolusData[“NumCount”] <2) {$TimeInterval = $this−>iv− >getPostPlateCheckInterval($PatientID);$PostPlateCheck = true; } else { $TimeInterval =$MealBolusData[“TimeInterval”] ; } } } if($CancelPreMeal==“yes”){$MealBolus =0;} if($MealBolus ==1) { if($Premeal != “1”) { $multiplier= $LastBGData−>SensitivityFactor; } $MB =$this−>CalculateMealBolusIIR($PatientID, $CurrentBG, $EstCarbs,$ActualCarbs, $LastBGData, $multiplier, $MealBolusCount, $TimeInterval); if ($PostPlateCheck) {$ActualCarbs = 0;} $iir = round($MB[0],1);$MealBolusDose = round($MB[2],2); if($MealBolusDose == 0.00){$MealBolusDose = 0.01;} } $iir_display = $iir;if($this−>default−>InsulinUnitOfMeasure != ‘units/hr’) { $iir_display =$iir_display/$LastBGData−>InsulinConcentration; $iir =$iir/$LastBGData−>InsulinConcentration; } // settings $hospital_settings=$this−>patient− >GetHospitalUnitInfoByHospitalUnitID($LastBGData−>HospitalUnitID);//get the value from configurable option $HypoTreatmentValue=is_numeric($hospital_settings− >HypoTreatment)?$hospital_settings−>HypoTreatment:60;$StopInsulinBGValue =$this−>systemsettings− >GlobalSetting(“StopInsulinBGValue”); if((trim(strtolower($StopInsulinBGValue)) == “targetlow”) ||empty($StopInsulinBGValue) || !isset($StopInsulinBGValue) ||($StopInsulinBGValue > $LastBGData−>TargetLow) ) {$StopInsulinBGValue =$LastBGData−>TargetLow;} //if IIR gets this high, stop!!!$StopInsulinRecommendation =getOneField(“StopInsulinRecValue”,“xStopInsulinRecommendation”,“StopInsulinRecID”, $hospital_settings−>StopInsulinRecomm);$default_iir_limit =$this−>options− >ListData(“Warning_IRGreaterThanValue”,“xWarning_IRGreaterThan”,“Warning_IRGreaterThanID = ”‘ . $hospital_settings−>DisplayWarn .’“”,true)− >Warning_IRGreaterThanValue; $ShowHighRateWarning = ($iir >=$default_iir_limit); $HighRateLimit = $default_iir_limit;$showInsulinResistance = false; $showD50 = false; $showHTF = false;$stopInsulin = false; $D50 = 0; if($CurrentBG >= 250) {$showInsulinResistance =$this−>iv− >CheckIfInsulinResistance($PatientID); } if ( ($CurrentBG <=$HypoTreatmentValue) && ($CurrentBG < $LastBGData−>TargetLow) ) { $D50 =(100−$CurrentBG)*0.4; $D50 = round($D50, 0); //IIR for D50 is always 0$iir = 0; $iir_display = 0; if ($CurrentBG <= $HypoTreatmentValue) {$showD50 = true; } else { if ($CurrentBG > 60) { $showHTF = true; } } }$stopInsulin = ($showD50 || ( $CurrentBG<=$StopInsulinBGValue &&$CurrentBG < $LastBGData−>TargetLow)); $showIIR = (!($showD50 ||$showHTF )); $showD50Dupe = false; if($showD50 && $LastBGData−>BGID > 0){ if( ($LastBGData−>MinutesFromLastBG<20) && ($LastBGData−>BGValue <$CurrentBG) ) { $showD50 = false; $showD50Dupe = true; $iir = 0; $D50 =0; } } if($stopInsulin) {$iir = “0”;} $UseGTFluid = $this−>UseGTFluid($PatientID, $CurrentBG); $BGData = array( “ActualCarbs”=>$ActualCarbs,“EnableFluidManage” => $hospital_settings− >EnableFluidManage,‘FluidType’ =>($UseGTFluid)?$LastBGData− >Over250Fluid:$LastBGData−>Under250Fluid,“FluidRate’ =>($UseGTFluid)?$LastBGData− >Over250Rate:$LastBGData−>Under250Rate,‘BGValue’ => $CurrentBG, ‘InsulinRate’ => $iir, ‘SensitivityFactor’ =>$multiplier, ‘D50W’ => $D50, ‘PatientEat’=>$PatientEat, ‘MealBolusDose’=> $MealBolusDose, “CreateDate” => getOneField(“dbo.fnGluDateTime( )”,“Patients”, “PatientID”, $PatientID) ); if($stopInsulin) { $iir =0;$iir_display = 0; } $ShowWarningContactPhysician= ($iir >=$StopInsulinRecommendation && $StopInsulinRecommendation!= “”);if($ShowWarningContactPhysician) { $ShowHighRateWarning =false; $iir =$StopInsulinRecommendation; $iir_display = $StopInsulinRecommendation;$BGData[“InsulinRate”] = $StopInsulinRecommendation;$BGData[“SensitivityFactor”] = $StartingMultiplier; } $SameIIR = false;if($PreviousBGRate == $iir_display){ $SameIIR = true; } $data= array(“iir” => $iir, “iir_display”=>$iir_display, “InsulinUnitOfMeasure” =>$this−>default− >InsulinUnitOfMeasure, “showInsulinResistance” =>$showInsulinResistance, “showD50”=>$showD50,“showD50Dupe”=>$showD50Dupe, “showHTF”=>$showHTF, “showIIR”=>$showIIR,“stopInsulin”=>$stopInsulin, “D50”=>$D50,“HypoTreatmentValue”=>$HypoTreatmentValue, ‘PrevD50W’ =>$LastBGData−>D50W, “LastBGData” => $LastBGData, “default” =>$this−>default, “SecondNurseVerification” =>$hospital_settings− >EnableSecondNurseVer, “ShowHighRateWarning” =>$ShowHighRateWarning, “HighRateLimit” => $HighRateLimit,“ShowWarningContactPhysician” => $ShowWarningContactPhysician,‘BGData’=>$BGData, ‘SameIIR’=>$SameIIR, ‘PatientEat’=>$PatientEat,“IsDistinueIV” =>$MinutesInTransition>=240?true:false,‘EnableHypoglycemiaMessage’=>$hospital_settings− >EnableHypoglycemiaMessage,‘MinutesFromLastBG’ => $LastBGData−>MinutesFromLastBG,‘HypoglycemiaMessage’=>$hospital_settings− >HypoglycemiaMessage,‘LastBGCarbsGiven’ =>$LastBGCarbsGiven, ‘IVDiscontinueRecomm’ =>$this−>iv− >IVDiscontinueRecomm($PatientID, $iir),‘AreLastFourInsulinRatesLow’ =>$this−>iv− >AreLastFourInsulinRatesLow($PatientID, $iir) ); //LoadingHistory Data $UserID = $this−>session−>userdata[‘logged_in’][‘UserID’];if(($data[“showIIR”])) { $DosageAmount = $data[“iir_display”];$DosageLabel =dealWithInsulinMeasurement($data[“InsulinUnitOfMeasure”],$data[“iirdisplay”]); } if($data[“showD50”]) { if($EnableHypoglycemiaMessage = 1){ $DosageAmount = “null”; $DosageLabel = “Stop Insulin Infusion”; } else{ $DosageAmount = $D50; $DosageLabel = “D50 or 12-15 Grams of Carbs”; }} //if $DosageAmount is empty and $DosageLabel is emptyif(empty($DosageAmount) && empty($DosageLabel)){ $DosageAmount = 0;$DosageLabel = null; } $this−>load−>model(“patient”);$this−>patient−>AddDosageRecommendationHistory($PatientID, 1,1,$CurrentBG, $DosageAmount, $DosageLabel, $UserID);$this−>load−>view(“forms/bg/iv_bg_checkboxes”, $data); } functionUseGTFluid($PatientID, $CurrentBG) { //BR5.2 if($CurrentBG >= 300){return true;} //BR5.1 $Last3BGs = $this−>iv−>Last2BGs($PatientID);if(count($Last3BGs) == 0 && $CurrentBG >= 250) {return true;} //BR5.3if($CurrentBG>=250 && $Last3BGs[0]−>OverUnder == “over”) {return true;}//BR5.4 if($CurrentBG>=250 && $Last3BGs[0]−>BGValue >=250 &&$Last3BGs[1]−>BGValue >=250) {return true;} //default BR5.5 returnfalse; } function CalculateMealBolusIIR($PatientID, $CurrentBG,$EstimatedCarbs, $ActualCarbs, $LastBGData, $Multiplier,$MealBolusCount, $TimeInterval) { $InsulinUnitsOfMeasure =GetOneField(“SettingValue”, “GlobalSettings”, “SettingName”,“InsulinUnitOfMeasure”); $r = PreMealIIR( $PatientID, $CurrentBG,$Multiplier, $LastBGData−>InsulinConcentration, $EstimatedCarbs,$ActualCarbs, $TimeInterval, $InsulinUnitsOfMeasure, $MealBolusCount );$r[0] = round($r[0], 5); return $r; } function CalculateIIR($PatientID,$CurrentBG, $LastBGData, $EstCarbs) { /*Adjust Multiplier*/ $multiplier= $LastBGData−>SensitivityFactor; /*add the condition$LastBGData−>SensitivityFactor == $LastBGData− >PreBGSensitivityFactorif change the Multiplier by manually ,it should not be changed. updatedby stanley on 10/30/2013 */ if(($LastBGData−>BGID!=0 || $EstCarbs > 0)&& ($LastBGData− >SensitivityFactor =$LastBGData−>PreBGSensitivityFactor) ) { if( ($CurrentBG >$LastBGData−>TargetHigh) && (($CurrentBG / $LastBGData−>BGValue) > 0.85)) { $multiplier = $multiplier* 1.25; } elseif($CurrentBG <$LastBGData−>TargetLow) { $multiplier = $multiplier * 0.8; } }$multiplier = round($multiplier, 5); //Calc IIR $IIR = round(($CurrentBG − 60) * $multiplier, 1); if($IIR < 0) {$IIR = 0;} $return =array( “iir”=>$IIR, “multiplier” => $multiplier, ); return $return; }

FIG. 3 provides a dose calculation process 300 for calculating theinsulin infusion rate IIR of the patient 10 for intravenous treatmentafter the process 200 receives the patient information 208 a discussedabove (including the patients' blood glucose value BG). At block 301 thedose calculation process 300 determines if the patient's blood glucoseBG is less than a stop threshold value BG_(THstop). If not, then atblock 303 the dose calculation process 300 goes to block 304 withouttaking any action. If, however, the patient's blood glucose BG is lessthan a stop threshold value BG_(THstop), then the calculation doseprocess sets the patient's regular insulin dose rate IRR to zero atblock 302, which then goes to block 322. The dose calculation process300 determines at decision block 304 if the inputted blood glucose valueBG is the first inputted blood glucose value.

The patient's regular insulin dose rate IIR is calculated at block 320in accordance with the following equation:

IIR=(BG−K)*M  (3A)

where K is a constant, known as the Offset Target, with the same unit ofmeasure as blood glucose and M is a unit-less multiplier. In someexamples, the Offset Target K is lower than the blood glucose targetrange of the patient 10. The Offset Target K allows the dose calculationprocess 300 to calculate a non-zero stable insulin dose rate even with ablood glucose result is in the blood glucose target range BG_(TR).

The initial multiplier M_(I), determined by the physician 40,approximates the sensitivity of a patient 10 to insulin. For example,the initial multiplier equals 0.02 for adults ages 18 and above. In someexamples, the initial multiplier M_(I) equals 0.01 for frail elderlypatients 10 who may be at risk for complications arising when theirblood glucose level BG falls faster than 80 mg/dl/hr. Moreover, thephysician 40 may order a higher initial multiplier M_(I) for patients 10with special needs, such as CABG patients (i.e., patients who haveundergone coronary artery bypass grafting) with BMI (Body Mass Indexwhich is a measure for the human body shape based on the individual'smass and height) less than 30 might typically receive an initialmultiplier of 0.05, whereas a patient 10 with BMI greater than 30 mightreceive an initial multiplier M_(I) of 0.06. In addition, a patient'sweight may be considered in determining the value of the initialmultiplier M_(I), for examples, in pediatric treatments, the system 100calculates a patient's initial multiplier M_(I) using the followingequation:

M _(I)=0.0002×Weight of patient (in kilograms)  (3B)

In some implementations, K is equal to 60 mg/dl. The dose calculationprocess 300 determines the target blood glucose target range BG_(TR)using two limits inputted by the user 40, a lower limit of the targetrange BG_(TRL) and an upper (high) limit of the target range BG_(TRH).These limits are chosen by the user 40 so that they contain the desiredblood glucose target as the midpoint. Additionally, the Offset Target Kmay be calculated dynamically in accordance with the following equation:

K=BG_(Target)−Offset,  (4)

where BG_(Target) is the midpoint of the blood glucose target rangeBG_(TR) and Offset is the preconfigured distance between the targetcenter BG_(Target) and the Offset Target, K.

In some implementations, the insulin dose rate IRR may be determined bythe following process on a processor 112, 132, 142. Other processes mayalso be used.

function IIR($sf, $current_bg, $bg_default = 60, $insulin_concentration,$ins_units_of_measure = ‘units/hr’) { settype($sf,‘float’);settype($bg_default,‘float’); settype($current_bg,‘float’);settype($insulin_concentration,‘float’); /* @param $sf = sensitivityfactor from db @param $current_bg = the current bg value being submitted@param $db_default = the default “Stop Insulin When” value....If itisn’t passed, it defaults to 60 @param $insulin_concentration = thedefault insulin concentration from settings */ if($current_bg > 60) {$iir = array( ); $iir[0] = round(($current_bg − $bg_default) * $sf, 1);if ($ins_units_of_measure != ‘units/hr’) { $iir[1] = round(($current_bg− $bg_default) * $sf/ $insulin_concentration ,1); } return $iir; } else{ return 0; } }

Referring to decision block 304, when the dose calculation process 300determines that the inputted blood glucose value BG is the firstinputted blood glucose value, then the dose calculation process 300defines the value of the current multiplier M equal to an initialmultiplier (M) at block 306. The dose calculation process 300 thencalculates, at block 320, the Insulin Infusion Rate in accordance withthe IIR equation (EQ. 3A) and returns to the process 200 (see FIG. 2).

However, referring back to decision block 304, when the dose calculationprocess 300 determines that the inputted blood glucose value BG is notthe first inputted blood glucose value, the dose calculation process 300determines if the Meal Bolus Module has been activated at decision block308. If the dose calculation process 300 determines that the Meal BolusModule has been activated, then the dose calculation process 300 beginsa Meal Bolus process 500 (see FIG. 5).

Referring back to decision block 308, if the Meal Bolus Module has notbeen activated, the dose calculation process 300 determines, at decisionblock 310, if the current blood glucose value BG is greater than theupper limit BG_(TRH) of the blood glucose target range BG_(TR). If theblood glucose value BG is greater than the upper limit BG_(TRH) of theblood glucose target range BG_(TR), the dose calculation process 300determines, at block 314, a ratio of the current blood glucose value BGto the previous blood glucose value BG_(P), where BG was measured at anearlier time than the current BG. The process 200 then determines if theratio of the blood glucose to the previous blood glucose, BG/BG_(P), isgreater than a threshold value L_(A), as shown in the followingequation:

(BG/BG _(P))>L _(A)  (5)

where BG is the patient's current blood glucose value; BG_(P) is thepatient's previous blood glucose value; and L_(A) is the threshold ratioof BG/BG_(P) for blood glucose values above the upper limit of the bloodglucose target range BG_(TRH). If the ratio BG/BG_(P) exceeds thethreshold ratio L_(A), then the Multiplier M is increased. In someexamples, the threshold ratio L_(A) equals 0.85.

If the dose calculation process 300 determines that the ratio (BGBG_(P)) of the blood glucose value BG to the previous blood glucosevalue BG_(P) is not greater than the threshold ratio L_(A) for a bloodglucose value BG above the upper limit BG_(TRH) of the blood glucosetarget range BG_(TR), then the dose calculation process 300 sets thevalue of the current multiplier M to equal the value of the previousmultiplier M_(P), see block 312.

M=M _(P)  (6)

Referring back to block 314, if the dose calculation process 300determines that the ratio (BG/BG_(P)) of the blood glucose value BG tothe previous blood glucose BG_(P) is greater than the threshold ratioL_(A) for a blood glucose value above upper limit BG_(TRH) of the bloodglucose target range BG_(TR), then dose calculation process 300multiplies the value of the current multiplier M by a desired MultiplierChange Factor (M_(CF)) at block 318. The dose calculation process 300then calculates the insulin infusion rate at block 320 using the IIRequation (EQ. 3A) and returns to the process 200 (see FIG. 2).

Referring back to block 310, when the dose calculation process 300determines that the current blood glucose value BG is not greater thanthe upper limit BG_(TRH) of the blood glucose target range BG_(TR), thedose calculation process 300 then determines if the current bloodglucose concentration BG is below the lower limit BG_(TRL) of the bloodglucose target range BG_(TR) at decision block 311. If the current bloodglucose value BG is below the lower limit BG_(TRL) of the blood glucosetarget range BG_(TR), the dose calculation process 300 at block 316divides the value of the current multiplier M by the Multiplier ChangeFactor (M_(CF)), in accordance with the following equation:

M=M _(P) /M _(CF)  (7)

and calculates the current insulin infusion rate IIR using equation 3 atblock 320 and returns to the process 200 (see FIG. 2).

At block 311, if the dose calculation process 300 determines that theblood glucose value BG is not below the lower limit of the blood glucosetarget range BG_(TRL), the dose calculation process 300 sets the valueof the current multiplier to be equal to the value of the previousmultiplier M_(P) at block 312 (see EQ. 6).

Referring again to FIG. 3, at block 311, if the current blood glucosevalue BG is below the lower limit of the target range BG_(TRL), logicpasses to decision block 322, where the process 300 determines if thecurrent blood glucose concentration BG is below a hypoglycemia thresholdBG_(Hypo). If the current blood glucose BG is below the hypoglycemiathreshold BG_(Hypo), logic then passes to block 324, where the process300 recommends hypoglycemia treatment, either by a calculation of anindividualized dose of intravenous glucose or oral hypoglycemiatreatment.

Referring back to FIG. 2A, after the dose calculation process 300calculates the insulin infusion rate IIR, the process 200 proceeds to atime calculation process 400 (FIG. 4A) for calculating a time intervalT_(Next) until the next blood glucose measurement.

FIG. 4A shows the time interval calculation process 400 for calculatinga time interval T_(Next) between the current blood glucose measurementBG and the next blood glucose measurement BG_(next). The time-durationof blood glucose measurement intervals T_(Next) may vary and thestarting time interval can either be inputted by a user 40 at thebeginning of the process 200, 300, 400, or defaulted to a predeterminedtime interval, T_(Default) (e.g., one hour). The time interval T_(Next)is shortened if the blood glucose concentration BG of the patient 10 isdecreasing excessively, or it may be lengthened if the blood glucoseconcentration BG of the patient 10 becomes stable within the bloodglucose target range BG_(TR).

The time-interval calculation process 400 determines a value for thetime interval T_(Next) based on several conditions. The time-intervalprocess 400 checks for the applicability of several conditions, whereeach condition has a value for T_(next) that is triggered by alogic-test (except T_(default)). The process 400 selects the lowestvalue of T_(next) from the values triggered by logic tests (not countingT_(default)). If no logic test was triggered, the process selectsT_(default). This is accomplished in FIG. 4A by the logic structure thatselects the lowest values of T_(next) first. However, other logicstructures are possible as well.

The time calculation process 400 determines at decision block 416 if thecurrent blood glucose BG is below the lower limit BG_(TRL) (target rangelow limit) of the blood glucose target range BG_(TR). If the currentblood glucose BG is below the lower limit BG_(TRL) of the blood glucosetarget range BG_(TR), then the time calculation process 400 determines,at decision block 418, if the current blood glucose BG is less than ahypoglycemia-threshold blood glucose level BG_(Hypo).

If the current blood glucose BG is less than the hypoglycemia-thresholdblood glucose level BG_(Hypo) the time calculation process 400 sets thetime interval T_(Next) to a hypoglycemia time interval T_(Hypo), e.g.,15 or 30 minutes, at block 426. Then the time calculation process 400 iscomplete and returns to the process 200 (FIG. 2) at block 428.

If the current blood glucose BG is not less than (i.e., is greater than)the hypoglycemia-threshold blood glucose level BG_(Hypo) at block 418,the time calculation process 400 determines at block 422 if the mostrecent glucose percent drop BG_(%Drop), is greater than the thresholdglucose percentage drop % Drop_(Low Limit) (for a low BG range) usingthe following equation:

$\begin{matrix}{{BG}_{\% \mspace{11mu} {drop}} > {\% \; {Drop}_{{Low}\mspace{14mu} {Limit}}}} & \left( {8A} \right) \\{since} & \; \\{{BG}_{\% \mspace{11mu} {drop}} = \left( \frac{\left( {{BG}_{P} - {BG}} \right)}{{BG}_{P}} \right)} & \left( {8B} \right) \\{{then},} & \; \\{\left( \frac{\left( {{BG}_{P} - {BG}} \right)}{{BG}_{P}} \right) > {\% \; {Drop}_{{Low}\mspace{11mu} {Limit}}}} & \left( {8C} \right)\end{matrix}$

where BG_(P) is a previously measured blood glucose.

If the current glucose percent drop BG_(%Drop), is not greater than thelimit for glucose percent drop (for the low BG range) %Drop_(Low Limit), the time calculation process 400 passes the logic toblock 412. In some examples, the low limit % Drop_(Low Limit) equals25%.

Referring back to block 422, if the current glucose percent dropBG_(%DroP) is greater than the limit for glucose percent drop (for thelow BG range) % Drop_(Low Limit), the time calculation process 400 atblock 424 sets the time interval to a shortened time interval T_(Short),for example 20 minutes, to accommodate for the increased drop rate ofthe blood glucose BG. Then the time calculation process 400 is completeand returns to the process 200 (FIG. 2) at block 428.

Referring back to decision block 416, if the time calculation process400 determines that the current blood glucose BG is not below the lowerlimit BG_(TRL) for the blood glucose target range BG_(TR), the timecalculation process 400 determines at block 420 if the blood glucose BGhas decreased by a percent of the previous blood glucose that exceeds alimit % Drop_(Regular) (for the regular range, i.e., blood glucose valueBG>BG_(TRL)), using the formula:

$\begin{matrix}{\left( \frac{\left( {{BG}_{P} - {BG}} \right)}{{BG}_{P}} \right) > {\% \; {Drop}_{Regular}}} & (9)\end{matrix}$

If the blood glucose BG has decreased by a percentage that exceeds theregular threshold glucose percent drop (for the regular BG range) %Drop_(Regular), the time calculation process 400, at block 425, sets thetime interval to the shortened time interval T_(Short), for example 20minutes. A reasonable value for % Drop_(Regular) for manyimplementations is 66%. Then the time calculation process 400 iscomplete and returns to the process 200 (FIG. 2) at block 428. If,however, the glucose has not decreased by a percent that exceeds thethreshold glucose percent drop % Drop_(Regular), (for the regular BGrange), the time calculation process 400 routes the logic to block 412.The process 400 determines, at block 412, a blood glucose rate ofdescent BG_(DropRate) based on the following equation:

BG_(DropRate)=(BG_(P)−BG)/(T _(Current) −T _(Previous))  (10)

where BG_(P) is the previous blood glucose measurement, T_(Current) isthe current time and T_(Previous) is the previous time. Moreover, theprocess 400 at block 412 determines if the blood glucose rate of descentB_(GDropRate) is greater than a preconfigured drop rate limitBG_(dropRateLimit).

If the time calculation process 400 at block 412 determines that theblood glucose rate of descent BG_(DropRate), has exceeded thepreconfigured drop rate limit BG_(dropRateLimit), the time intervalT_(Next) until the next blood glucose measurement is shortened at block414 to a glucose drop rate time interval T_(BGDR), which is a relativelyshorter time interval than the current time interval T_(Current), asconsideration for the fast drop. The preconfigured drop rate limitBG_(dropRateLimit) may be about 100 mg/dl/hr. The glucose drop rate timeinterval T_(BGDR) may be 30 minutes, or any other predetermined time. Insome examples, a reasonable value for T_(Default) is one hour. Then thetime calculation process 400 is complete and returns to the process 200(FIG. 2) at block 428.

If the time calculation process 400 determines at block 412 that theglucose drop rate BG_(DropRate) does not exceed the preconfigured ratelimit BG_(dropRateLimit), the time calculation process 400 determines,at block 408, if the patient's blood glucose concentration BG has beenwithin the desired target range BG_(TR) (e.g., BG_(TRL)<BG<BG_(TRH)) fora period of time T_(Stable). The criterion for stability in the bloodglucose target range BG_(TR) is a specified time in the target rangeBG_(TR) or a specified number of consecutive blood glucose measurementsin the target range BG_(TR). For example, the stable period of timeT_(Stable) may be one hour, two hours, two and a half hours, or up to 4hours. If the stability criterion is met then the time interval T_(Next)until the next scheduled blood glucose measurement BG may be set atblock 410 to a lengthened time interval T_(Long) (such as 2 hours) thatis generally greater than the default time interval T_(Default). Thenthe time calculation process 400 is complete and returns to the process200 (FIG. 2) at block 428. If the time calculation process 400determines that the patient 10 has not met the criteria for stability,the time calculation process 400 sets the time interval T_(Next) to adefault time interval T_(Default) at block 406. Then the timecalculation process 400 is complete and returns to the process 200 (FIG.2) at block 428.

Referring to FIGS. 4B and 4C, once the time calculation process 400calculates the recommended time interval T_(Next), the process 200provides a countdown timer 430 that alerts the user 40 when the nextblood glucose measurement is due. The countdown timer 430 may be on thedisplay 116 of the patient device 110 or displayed on the display 146 ofthe hospital system 140. When the timer 430 is complete, a “BG Due!”message might be displayed as shown in FIG. 4B. The countdown timer 430may include an overdue time 432 indicating the time late if a bloodglucose value is not entered as scheduled.

In some implementations, the countdown timer 430 connects to the alarmsystem 120 of the user device 110. The alarm system 120 may produce anaudible sound via the speaker 122 in the form of a beep or some likeaudio sounding mechanism. The audible and/or visual notification mayalso be sent via the network to the hospital system 140 (or any otherremote station) and displayed on the display 146 of the hospital system140 or played through speakers 152 of the hospital system 140, or routedto the cell phone or pager of the user. In some examples, the audiblealarm using the speakers 122 is turned off by a user selection 434 onthe display 116 or it is silenced for a preconfigured time. The display116, 143 may show information 230 that includes the patient'sintravenous treatment information 230 a or to the patient's subcutaneoustreatment information 230 b. In some examples, the user 40 selects thecountdown timer 430 when the timer 430 indicates that the patient 10 isdue for his or her blood glucose measurement. When the user 40 selectsthe timer 430, the display 116, 146 allows the user 40 to enter thecurrent blood glucose value BG as shown in FIG. 4D. For intravenouspatients 10, the process 200 may ask the user 40 (via the display 116,146) if the blood glucose is pre-meal blood glucose measurement (asshown in FIG. 4D). When the user 40 enters the information 230 (FIG.4D), the user 40 selects a continue button to confirm the enteredinformation 230, which leads to the display 116, 146 displaying bloodglucose information 230 c and a timer 430 showing when the next bloodglucose measurement BG is due (FIG. 4E). In addition, the user 40 mayenter the patient's blood glucose measurement BG at any time before thetimer 430 expires, if the user 40 selects the ‘enter BG’ button 436.Therefore, the user 40 may input blood glucose values BG at any time, orthe user 40 may choose to start the Meal Bolus module process 500 (seeFIG. 5) by selecting the start meal button 438 (FIG. 4E), transition thepatient to SubQ insulin therapy 600 (see FIG. 6), or discontinuetreatment 220.

Referring to FIGS. 5A-5D, in some implementations, the process 200includes a process where the patient's blood glucose level BG ismeasured prior to the consumption of caloric intake and calculates therecommended intravenous mealtime insulin requirement necessary tocontrol the patient's expected rise in blood glucose levels during theprandial period. When a user 40 chooses to start the Meal Bolus process500 (e.g., when the user 40 positively answers that this is a pre-mealblood glucose measurement in FIG. 4D, or when the user 40 selects thestart meal button 438 in FIG. 4E), the Meal Bolus process 500, atdecision block 504, requests the blood glucose BG of the patient 10. Theuser 40 enters the blood glucose value BG at 501 or the system 100receives the blood glucose BG from a glucometer 124. This blood glucosemeasurement is referred to herein as the Pre-Meal BG or BG1. In someexamples, where the user 40 enters the information, the user 40 selectsa continue button to confirm the entered information 230 c. In someexamples, the intravenous meal bolus process 500 is administered to apatient 10 over a total period of time T_(MealBolus). The total periodof time T_(MealBolus) is divided into multiple time intervalsT_(MealBolus1) to T_(MealBolusN), where N is any integer greater thanzero. In some examples, a first time interval T_(MealBolus1) runs from aPre-Meal blood glucose value BG1 at measured at time T₁, to a secondblood glucose value BG2 at measured at time T₂. A second time intervalT_(MealBolus2) runs from the second blood glucose value BG2 measured attime T₂ to the third blood glucose value BG3 measured at time T₃. Athird time interval T_(MealBolus3) runs from the third blood glucosevalue BG3 measured at time T₃ to a fourth blood glucose value BG4measured at time T₄. In some implementations where the time intervalsT_(MealBolusN) are smaller than T_(Default), the user 40 should closelymonitor and control over changes in the blood glucose of the patient 10.For example, a total period of time T_(MealBolus) equals 2 hours, andmay be comprised of: T_(MealBolus1)=30 minutes, T_(MealBolus2)=30minutes, and T_(MealBolus3)=1 hour. This example ends on the fourthblood glucose measurement. When the Meal Bolus process 500 has beenactivated, an indication 440 is displayed on the display 116, 146informing the user 40 that the process 500 is in progress. The MealBolus process 500 prompts the user 40 if the entered blood glucose valueBG is the first blood glucose value prior to the meal by displaying aquestion on the patient display 116. If the Meal Bolus process 500determines that the entered blood glucose value BG is the first bloodglucose value (BG1) prior to the meal, then the Meal Bolus process 500freezes the current multiplier M from being adjusted and calculates aregular intravenous insulin rate IRR at block 512. The regularintravenous insulin rate IRR may be determined using EQ. 3A. Meanwhile,at block 502, the Meal Bolus process 500 loads preconfigured mealparameters, such as meal times, insulin type, default number ofcarbohydrates per meal, the total period of time of the meal bolusprocess T_(MealBolus), interval lengths (e.g., T_(MealBolus1),T_(MealBolus1) . . . T_(MealBolusN)), and the percent, “C”, of theestimated meal bolus to be delivered in the first intervalT_(MealBolus1). In some examples, when the system 100 includes ahospital electronic medical record system 140, nutritional informationand number of grams of carbohydrates are retrieved from the hospitalelectronic medical record systems 140 automatically. The Meal Bolusprocess 500 allows the user 40 to select whether to input a number ofcarbohydrates from a selection of standard meals (AcutalCarbs) or to usea custom input to input an estimated number of carbohydrates(EstimatedCarbs) that the patient 10 is likely to consume. The MealBolus process 500 then flows to block 506, where the estimated mealbolus rate for the meal is calculated. The calculation process in block506 is explained in two steps. The first step is calculation of a mealbolus (in units of insulin) in accordance with the following equation:

Estimated Meal Bolus=EstimatedCarbs/CIR  (11A)

where CIR is the Carbohydrate-to-Insulin Ratio, previously discussed.

The Meal Bolus process 500 then determines the Estimated Meal Bolus Ratebased on the following equation:

Estimated Meal Bolus Rate=Estimated Meal Bolus*C/T _(MealBolus1)  (11B)

Where, T_(MealBolus1) is the time duration of the first time interval ofthe Meal Bolus total period of time T_(MealBolus). C is a constantadjusted to infuse the optimum portion of the Estimated Meal Bolusduring first time interval T_(MealBolus1). For instance: if EstimatedMeal Bolus=6 units, T_(MealBolus1)=0.5 hours, and C=25%, then applyingEq. 11A as an example:

Estimated Meal Bolus Rate=(6 units)*25%/(0.5 hours)=3 units/hour  (11C)

The Meal Bolus process 500 calculates the Total Insulin Rate at block508 as follows:

Total Insulin Infusion Rate=Estimated Meal Bolus Rate+RegularIntravenous Rate   (12)

The Meal Bolus process 500 flows to block 510 where it sets the timeinterval for the first interval T_(MealBolus1) to its configured value,(e.g., usually 30 minutes), which will end at the second meal bolusblood glucose (BG2).

After the first time interval T_(MealBolus1) expires (e.g., after 30minutes elapse), the Meal Bolus process 500 prompts the user 40 to enterthe blood glucose value BG once again at block 501. When the Meal Bolusprocess 500 determines that the entered blood glucose value BG is notthe first blood glucose value BG1 entered at block 504 (i.e., thepre-meal BG, BG1, as previously discussed), the process 500 flows toblock 514. At block 514, the Meal Bolus process 500 determines if theblood glucose value BG is the second value BG2 entered by the user 40.If the user 40 confirms that the entered blood glucose value BG is thesecond blood glucose value BG2 entered, the Meal Bolus process 500 usesthe just-entered blood glucose BG2 to calculate the intravenous insulinrate IRR at block 516 and flows to block 524. Simultaneously, if theblood glucose is the second blood glucose BG2, the Meal Bolus process500 prompts the user 40 to enter the actual amount of carbohydrates thatthe patient 10 received at block 518. The Meal Bolus process 500 thendetermines at decision block 520 and based on the inputted amount ofactual carbohydrates, if the patient did not eat, i.e., if the amount ofcarbohydrates is zero (see FIG. 5C). If the Meal Bolus process 500determines that the patient did not eat, the Meal Bolus process 500 thenflows to block 540, where the meal bolus module process 500 isdiscontinued, the multiplier is no longer frozen, and the time intervalT_(Next) is restored to the appropriate time interval T_(Next), asdetermined by process 400. If however, the Meal Bolus process 500determines that the patient 10 ate, i.e., the actual carbohydrates isnot zero (see FIG. 5D), then The Meal Bolus process 500 flows to block522, where it calculates a Revised meal bolus rate according to thefollowing equations, where the Revised Meal Bolus and then an amount ofinsulin (in units of insulin) are calculated:

Revised Meal Bolus=ActualCarbs/CIR  (13A)

The process at block 522 then determines the amount (in units ofinsulin) of estimated meal bolus that has been delivered to the patient10 so far:

Estimated Meal Bolus Delivered=Estimated Meal Bolus Rate*(T ₂ −T₁)  (13B)

where time T1 is the time of when the first blood glucose value BG1 ismeasured and time T2 is the time when the second blood glucose value BG2is measured.

The process at block 522 then calculates the portion of the Revised MealBolus remaining to be delivered (i.e., the Meal Bolus that has not yetbeen delivered to the patient 10) as follows:

Revised Meal Bolus Remaining=Revised Meal Bolus−Estimated Meal BolusDelivered  (13C)

The process at block 522 then calculates the Revised Meal Bolus Rate asfollows:

Revised Meal Bolus Rate=Revised Meal Bolus Remaining/TimeRemaining  (14A)

where Time Remaining=T_(MealBolus)−T_(MealBolus1). Since the total timeinterval T_(MealBolus) and the first time interval T_(MealBolus1) arepreconfigured values, the Time Remaining may be determined.

The Meal Bolus process 500 calculates the total insulin rate at block524 by adding the Revised Meal Bolus Rate to the regular IntravenousRate (IIR), based on the blood glucose value BG:

Total Insulin Rate=Revised Meal Bolus Rate+IIR  (14B)

The Meal Bolus process 500 flows to block 526 where it sets the timeinterval T_(Next) to the second interval T_(MealBolus2), which will endat the third meal bolus blood glucose BG3 e.g., usually 30 minutes.

After the second interval, T_(MealBolus2) expires (e.g., 30 minutes),the Meal Bolus process 500 prompts the user 40 to enter the bloodglucose value BG once again at block 501. The Meal Bolus process 500determines that the entered blood glucose value BG is not the firstblood glucose value entered at block 504 (previously discussed) andflows to block 514. The Meal Bolus process 500 determines that theentered blood glucose value BG is not the second blood glucose valueentered at block 514 (previously discussed) and flows to block 528. Atblock 528, the Meal Bolus process 500 determines if the blood glucosevalue BG is the third value entered. If the entered blood glucose valueBG is the third blood glucose value BG entered, the Meal Bolus process500 calculates the intravenous insulin rate IRR at block 530 and flowsto block 532.

At block 532 the process determines the Total Insulin Rate by adding thenewly-determined Regular Intravenous Insulin Rate (IIR) to the RevisedMeal Bolus Rate, which was determined at BG2 and remains effectivethroughout the whole meal bolus time, T_(mealbolus).

The Meal Bolus process 500 flows to block 534 where it sets the timeinterval T_(Next) to the third interval T_(MealBolus3) for the fourthmeal bolus blood glucose, e.g., usually 60 minutes. In someimplementations, more than 3 intervals (T_(MealBolus1), T_(MealBolus2)T_(MealBolus3)) may be used. Additional intervals T_(MealBolusN) mayalso be used and the process handles the additional intervalsT_(MealBolusN) similarly to how it handles the third time intervalT_(MealBolus3). As discussed in the current example, the third intervalT_(MealBolus3) is the last time interval, which ends with themeasurement of the fourth blood glucose measurement BG4.

After the third time interval, T_(MealBolus3), expires (e.g., 60minutes), the Meal Bolus process 500 prompts the user 40 to enter theblood glucose value BG once again at block 501. The Meal Bolus process500 determines that the entered blood glucose value BG is not the firstblood glucose value entered at block 504 (previously discussed) andflows to block 514. The Meal Bolus process 500 determines that theentered blood glucose value BG is not the second blood glucose valueentered at block 514 (previously discussed), nor the third blood glucoselevel entered at block 528 and flows to block 536. At block 536, theMeal Bolus process 500 determines that the inputted blood glucose is thefourth blood glucose value BG4. In this example, the fourth bloodglucose value BG4 is the last one. The process 500 then flows to block538 where the multiplier is no longer frozen, and the time intervalT_(Next) is restored to the appropriate time interval T_(Next), asdetermined by the Timer Adjustment process 400 (FIG. 4A). At this time,the Meal Bolus process 500 ends and the user 40 is prompted with amessage indicating that the Meal Bolus process 500 is no longer active.

As shown in FIG. 4E, the process 200 provides a countdown timer 430 thatalerts the user 40 when the next blood glucose measurement is due. Thecountdown timer 430 may be on the display 116 of the patient device 110or displayed on the display 146 of the hospital system 140. When thetimer 430 is complete, a “BG Due!” message might be displayed as shownin FIG. 4B. Moreover, the timer 430 may be a countdown timer or a mealtimer indicating a sequence of mealtime intervals (e.g., breakfast,lunch, dinner, bedtime, mid-sleep).

In some implementations, a Meal Bolus process 500 may be implemented bythe following process on a processor 112, 132, 142. Other processes mayalso be used.

function PreMealIIR($PatientID, $CurrentBG, $Multiplier,$InsulinConcentration, $EstCarbs, $ActualCarbs, $TimeInterval,$InsulinUnitsOfMeasure, $MealBolusCount) { $iir = array( );$CarbInsulinRatio = CIR($PatientID); $NormalInsulin = ($CurrentBG −60) * $Multiplier; if($MealBolusCount == 0) { //first run − PremealBolus $MealBolus = ($EstCarbs /$CarbInsulinRatio); if($MealBolus <0){$MealBolus = 0;} $iir[0] = $NormalInsulin + ( $MealBolus *.5 ); $iir[2]= ( $MealBolus *.5 ); /* print “Premeal: MX: ” .$Multiplier. “<BR>”;print ($CurrentBG − 60) * $Multiplier; print “+” ; print ( $MealBolus*.5 ); */ } else if($MealBolusCount == 1){ //second run Post Meal Bolus//third run time interval coming in is actually the //difference betweenthe premeal BG and the first Post Meal BG (second run) $MealBolus =($ActualCarbs / $CarbInsulinRatio); $OldMealBolus = ($EstCarbs /$CarbInsulinRatio); $CurrentMealBolus = ($MealBolus − ($OldMealBolus*.5 * $TimeInterval))/1.5; if($CurrentMealBolus <0) {$CurrentMealBolus=0;} $iir[0] = $NormalInsulin + $CurrentMealBolus ; $iir[2] =$CurrentMealBolus ; /* print “PlateCheck: <BR>MX: ” . $Multiplier .“<BR>”; print “Est Carbs: ” . $EstCarbs . “<BR>”; print “ActualCarbs: ”. $ActualCarbs . “<BR>”;; print “CarbInsulinRatio: ” . $CarbInsulinRatio. “<BR>”; print “TimeInterval: ” . $TimeInterval . “<BR>”; print“Multiplier: ” . $Multiplier; */ } else { $MealBolus = ($ActualCarbs /$CarbInsulinRatio); $OldMealBolus = ($EstCarbs / $CarbInsulinRatio); /*print “Actual Carbs: ” . $ActualCarbs . “<BR>”; print “Est Carbs: ” .$EstCarbs . “<BR>”; print “CIR: ” . $CarbInsulinRatio . “<BR>”; print“Multiplier: ” . $Multiplier . “<BR>”; print “CurrentBG: ” . $CurrentBG. “<BR>”; print “IIR: ” . (($CurrentBG − 60) * $Multiplier) . “<BR>”;print “MealBolus: ” . $MealBolus . “<BR>”; print “OldMealBolus: ” .$OldMealBolus . “<BR>”; print “TimeInterval: ” . $TimeInterval . “<BR>”;*/ $CurrentMealBolus = ($MealBolus − ($OldMealBolus *.5 *$TimeInterval))/1.5; if($CurrentMealBolus <0) {$CurrentMealBolus =0;}$iir[0] = $NormalInsulin + $CurrentMealBolus; $iir[2] =$CurrentMealBolus; /* print “Post PlateCheck: <BR>MX: ” . $Multiplier .“<BR>”; print “IIR: ”; print ($CurrentBG − 60) * $Multiplier . “<BR>”;print “Est Carbs: ” . $EstCarbs . “<BR>”; print “Acutal Carbs: ” .$ActualCarbs . “<BR>”; print “Old Meal bolus: ” . $OldMealBolus .“<BR>”; print “TimeInterval: ” . $TimeInterval . “<BR>”; print “Mealbolus: ” . $MealBolus . “<BR>”; print “Final Calc: ” . $iir[0]; */ } if($InsulinUnitsOfMeasure != “units/hr”) { $iir[0] =$iir[0]/$InsulinConcentration; } return $iir; }

Referring to FIGS. 2A and 6A-6B, if the user elects to initiate the SubQTransition process 600, the SubQ Transition process 600 determines atdecision block 604 if the current blood glucose BG is within apreconfigured stability target range BG_(STR), e.g., 70-180 mg/dl, whichis usually wider than the prescribed Target Range, BG_(TR). If the bloodglucose BG is not within the preconfigured stability target rangeBG_(STR) (e.g., BG_(Low)<BG<BG_(High)), the SubQ Transition process 600at block 606 displays a warning notification on the patient display 116.Then, at lock 610, the SubQ Transition process 600 is automaticallydiscontinued.

Referring back to block 604, if the blood glucose BG is within thepreconfigured stability target range BG_(STR) (e.g. 70-180 mg/dl), theSubQ Transition process 600 at decision block 608 determines if thepatient's blood glucose measurement BG has been in the patient'spersonalized prescribed target range BG_(TR) for the recommendedstability period T_(Stable), e.g., 4 hours. If the SubQ Transitionprocess 600 determines that the blood glucose value BG has not been inthe prescribed target range BG_(STR) for the recommended stabilityperiod T_(Stable), the SubQ Transition process 600 moves to block 614where the system 100 presents the user 40 with a warning notification onthe patient display 116, explaining that the patient 10 has not been inthe prescribed target range for the recommended stability period (seeFIG. 6C). The SubQ Transition process 600 continues to decision block618 where it determines whether the user 40 wants the patient 10 tocontinue the SubQ Transition process or to discontinue the SubQTransition process. The SubQ Transition process 600 displays on thedisplay 116 of the patient device 110 the question to the user 40 asshown in FIG. 6D. If the user 40 chooses to discontinue the SubQTransition process, the SubQ Transition process 600 flows to block 624,where the SubQ Transition process is discontinued.

Referring back to block 618, if the user 40 chooses to override thewarning and continue the SubQ Transition process, the process 600prompts the user 40 to enter SubQ information 617 as shown in FIG. 6E.The SubQ Transition process 600 flows to block 616, where the patient'sSubQ Transition dose is calculated as a patient's total daily dose TDD.In some implementations, TDD is calculated in accordance with equation:

TDD=QuickTransitionConstant*M _(Trans)  (15A)

where QuickTransitionConstant is usually 1000, and M_(Trans) is thepatient's multiplier at the time of initiation of the SubQ transitionprocess.

Referring again to block 616, in some implementations TDD is calculatedby a statistical correlation of TDD as a function of body weight. Thefollowing equation is the correlation used:

TDD=0.5*Weight(kg)  (15B)

The SubQ Transition process 600 continues to block 620, where therecommended SubQ dose is presented to the user 40 (on the display 116)in the form of a Basal recommendation and a Meal Bolus recommendation(see FIG. 6F).

Referring again to decision block 608, if the SubQ Transition process600 determines that the patient 10 has been in the prescribed targetrange BG_(TR) for the recommended stability period, T_(Stable), SubQTransition process 600 continues to block 612, where the patient's totaldaily dose TDD is calculated in accordance with the following equation:

TDD=(BG_(Target) −K)*(M _(Trans))*24  (16)

where M_(Trans) is the patient's multiplier at the time of initiation ofthe SubQ transition process.

In some implementations, the patient's total daily dose TDD may bedetermined by the following process on a processor 112, 132, 142. Otherprocesses may also be used.

function getIV_TDD($PatientID) { //$weight = getOneField(“weight”,“patients”, “patientID”, $PatientID); //return $weight/2; $CI =get_instance( ); $CI−>load−>model(‘options’); $d =$CI−>options−>GetIVTDDData($PatientID); $TargetHigh = $d[“TargetHigh”];$TargetLow = $d[“TargetLow”]; $Multiplier = $d[“Multiplier”]; $MidPoint= ($TargetHigh + $TargetLow) / 2; $Formula = ($MidPoint − 60) *$Multiplier * 24; return $Formula; }

When the patient's total daily dose TDD is calculated, the SubQTransition process 600 continues to block 620 where the recommended SubQdose is presented to the user 40 as described above. The SubQ Transitionprocess 600 continues to block 622, where the SubQ Transition process600 provides information to the user 40 including a recommended dose ofBasal insulin. The user 40 confirms that the Basal insulin has beengiven to the patient 10; this starts a transitions timer using theTransitionRunTime_(Next), usually 4 hours. At this point, normalcalculation rules governing the IIR are still in effect, including theintravenous IIR timer (Timer Adjustment process 400), which continues toprompt for blood glucose tests at time intervals T_(Next) as describedpreviously. The SubQ Transition process 600 passes to decision block626, which determines whether the recommended time intervalTransitionRunTime has elapsed, e.g., 4 hours, after which time SubQTransition process 600 continues to block 630, providing the user withsubcutaneous insulin discharge orders and exiting the IV Insulin processin block 634.

Referring back to FIG. 2A, in some implementations, the subcutaneousprogram (at block 226) includes six sub programs: a subcutaneousstandard program (FIGS. 9A-9B); a subcutaneous for tube-fed patientsProgram (FIG. 10); a subcutaneous program with no meal boluses (FIG.11); a meal-by-meal subcutaneous program without carbohydrate counting(FIG. 12); a meal-by-meal subcutaneous program with carbohydratecounting (FIGS. 13A-13B); and a subcutaneous program for non-diabeticpatients (FIG. 14). Some functions or processes are used within the sixsubcutaneous programs such as determining the general and pre-mealcorrection (FIG. 7), determining the adjustment factor AF (FIG. 8), andhypoglycemia treatment.

Referring to FIG. 7, correction boluses CB are used in the sixsubprograms of SubQ program (block 226, FIG. 2); because of this,correction boluses CB may be incorporated into a function havingvariables such as the blood glucose measurement BG of a patient 10, apatient's personalized target blood glucose BG_(Target), and acorrection factor CF. Thus, correction boluses CB are described as afunction of the blood glucose measurement BG, the target blood glucoseBG_(Target), and the correction factor CF (see EQ. 19 below). Theprocess 700 calculates the correction bolus CB immediately after a bloodglucose value BG of a patient 10 is measured. Once a calculation of thecorrection bolus CB is completed, a nurse 40 administers the correctionbolus CB to the patient 10, right after the blood glucose value BG ismeasured and used to calculate the correction bolus CB.

In some examples, the process 700 may determine the total daily dose TDDof insulin once per day, for example, every night at midnight. Othertimes may also be available. In addition, the total daily dose TDD maybe calculated more frequently during the day, in some examples, thetotal daily dose TDD is calculated more frequently and considers thetotal daily dose TDD within the past 24 hours. The process 700 providesa timer 702, such as a countdown timer 702, where the timer 702determines the time the process 700 executes. The timer 702 may be acount up timer or any other kind of timer. When the timer 702 reachesits expiration or reaches a certain time (e.g., zero for a countdowntimer 702), the timer 702 executes the process 700. The counter 702 isused to determine at what time the process 704 calculates the totaldaily dose TDD. If the counter is set to 24 hours for example, thendecision block 704 checks if the time has reached 24 hours, and when itdoes, then the process 700 calculates the total daily dose TDD ofinsulin. The correction bolus process 700 determines a total daily doseof insulin TDD, based on the following equation:

TDD=Sum over previous day (all basal+all meal boluses+all correctionboluses)  (17)

After the process 700 determines the total daily dose TDD of insulin atblock 706, the process 700 determines a Correction Factor CF immediatelythereafter at block 710, using the calculated total daily dose TDD fromblock 706 and Eq. 17. The correction factor CF is determined using thefollowing equation:

CF=CFR/TDD  (18)

where CFR is a configurable constant stored in the non-transitory memory24, 114, 144 of the system. At block 708, the process 700 retrieves theconfigurable constant CFR value from the non-transitory memory 24, 114,144 to calculate the correction factor CF at block 710. The configurableconstant CFR is determined from a published statistical correlation andis configurable by the hospital, nurses and doctors. The flexibility ofmodifying the correction constant CF, gives the system 100 flexibilitywhen a new published configurable constant CFR is more accurate than theone being used. In some examples, the configurable constant CFR is aconfigurable constant set to 1700, other values may also be available.In some examples, the total daily dose TDD and CF are determined onceper day (e.g., at or soon after midnight).

Once the correction factor CF is determined in EQ. 18, the process 700determines the correction bolus insulin dose at block 714 using thefollowing equation:

CB=(BG−BG_(Target))/CF  (19)

where BG is the blood glucose measurement of a patient 10 retrieved atblock 712, BG_(Target) is the patient's personalized Target bloodglucose, and CF is the correction factor. The process 700 returns thecorrection bolus CB at block 716. Rapid-acting analog insulin iscurrently used for Correction Boluses because it responds quickly to ahigh blood glucose BG. Also rapid acting analog insulin is currentlyused for meal boluses; it is usually taken just before or with a meal(injected or delivered via a pump). Rapid-acting analog insulin actsvery quickly to minimize the rise of patient's blood sugar which followseating.

A Correction Bolus CB is calculated for a blood glucose value BG at anytime during the process 200. Pre-meal Correction Boluses CB, arecalculated using EQ. 19. In the Pre-meal Correction Bolus equation (19)there is no need to account for Remaining Insulin I_(Rem) becausesufficient time has passed for almost all of the previous meal bolus tobe depleted. However, post-prandial correction boluses (after-mealcorrection boluses) are employed much sooner after the recent meal bolusand use different calculations, that account for remaining insulinI_(Rem) that remains in the patient's body after a recent meal bolus.Rapid-acting analog insulin is generally removed by a body's naturalmechanisms at a rate proportional to the insulin remaining I_(Rem) inthe patient's body, causing the remaining insulin I_(Rem) in thepatient's body to exhibit a negative exponential time-curve.Manufacturers provide data as to the lifetime of their insulinformulations. The data usually includes a half-life or mean lifetime ofthe rapid-acting analog insulin. The half-life of the rapid-actinganalog insulin may be converted to mean lifetime iLifeRapid forrapid-acting insulin by the conversion formula:

iLifeRapid=Half-life*ln(2)  (20)

where ln(2) is the natural logarithm {base e} of two.

The present invention uses the mean lifetime iLifeRapid in its formulas(EQ. 20). Since the manufacturers and brands of insulin are few, thesystem 100 maintains the Half-life or iLifeRapid value of each insulinmanufacturer up-to-date.

The insulin remaining in the patient's body Remaining Insulin I_(Rem) isdetermined by multiplying the most recent insulin bolus {Meal Bolus,Correction Bolus, or combined bolus} times a time-dependentexponentially-declining factor as follows:

$\begin{matrix}{I_{Rem} = {{\left( {{Previous}\mspace{14mu} {Bolus}} \right)*e^{- {(\frac{T_{Current} - T_{Previous}}{iLifeRapid})}}} = {\left( {{Previous}\mspace{14mu} {Bolus}} \right)*{{EXP}\left( {- \left( \frac{T_{Current} - T_{Previous}}{iLifeRapid} \right)} \right)}}}} & (21)\end{matrix}$

where T_(Current) is the current time, and T_(PrevBolus) is the time atwhich the last bolus was given to the patient 10. The Post MealCorrection bolus CB_(post) is calculated similar to an ordinarycorrection bolus CB (EQ. 19) with a deduction of the remaining insulinI_(Rem) in the patient's body:

$\begin{matrix}{{CB}_{post} = {\frac{\left( {{BG} - {BG}_{Target}} \right)}{CF} - {\left( {{Previous}\mspace{14mu} {Bolus}} \right)\mspace{11mu} e^{- {(\frac{T_{Current} - T_{Previous}}{iLifeRapid})}}}}} & (22)\end{matrix}$

In some examples, Post Meal Correction doses CB_(Post) (EQ. 22) aretaken into consideration only if they are positive (units of insulin),which means a negative value post meal correction bolus CB_(Post) cannotbe used to reduce the meal bolus portion of a new combined bolus.

Referring to FIG. 8, the process 800 describes a function thatdetermines an Adjustment Factor AF based on an input of a GoverningBlood GlucoseBGgov. The Adjustment Factor AF is used by the sixsubcutaneous subprograms: a subcutaneous standard program (FIGS. 9A-9B);a subcutaneous for tube-fed patients Program (FIG. 10); a subcutaneousprogram without meal boluses (FIG. 11); a meal-by-meal subcutaneousprogram without carbohydrate counting (FIG. 12); a meal-by-mealsubcutaneous program with carbohydrate counting (FIGS. 13A-13B); and asubcutaneous program for non-diabetic patients (FIG. 14). These sixsubprograms adjust the insulin dose administered to a patient 10. Aninsulin adjustment process 800, applied to Basal doses and Meal Boluses,determines an adjusted Recommended Basal dose RecBasal, or a RecommendedMeal Bolus RecMealBol, by applying a unit-less Adjustment Factor AF tothe preceding recommendation of the same dose, RecBasal_(prev), orRecMealBol_(prev). All dose adjustments are governed by a GoverningBlood Glucose value BG_(gov). The Governing Blood Glucose valuesBG_(gov) in the process are selected based on the criteria of precedingthe previous occurrence of the dose to be adjusted by a sufficientamount of time for the effect (or lack of effect) of the insulin to beobservable and measurable in the value of the BG_(gov).

At block 802, the adjustment factor process 800 receives the GoverningGlucose value BG_(gov) from non-transitory memory 24, 114, 144, sincethe adjustment factor AF is determined using the Governing Glucose valueBG_(gov). To determine the adjustment factor AF, the adjustment factorprocess 800 considers the blood glucose target range BG_(TR) (withinwhich Basal doses and Meal Boluses, are not changed), which is definedby a lower limit, i.e., a low target BG_(TRL) and an upper limit, i.e.,a high target BG_(TRH). As previously discussed, the target rangeBG_(TR) is determined by a doctor 40 and entered manually (e.g., usingthe patient device 110 or the medical record system 140, via, forexample, a drop down menu list displayed on the display 116, 146). Eachtarget range BG_(TR) is associated with a set of configurable constantsincluding a first constant BG_(AFL), a second constant BG_(AFH1), and athird constant BG_(AFH2) shown in the below table.

TABLE 1 Target Range Settings Input Ranges BG_(AFL) BG_(TRL) BG_(TRH)BG_(AFH1) BG_(AFH2)  70-100 70 70 100 140 180  80-120 80 80 120 160 200100-140 70 100 140 180 220 120-160 90 120 160 200 240 140-180 110 140180 220 260

The adjustment factor process 800 determines, at block 804, if theGoverning Glucose value BG_(gov) is less than or equal to the firstconstant BG_(AFL) (BG_(gov)<=BG_(AFL)), if so then at block 806, theadjustment factor process 800 assigns the adjustment factor AF to afirst pre-configured adjustment factor AF 1 shown in Table 2.

If, at block 804, the Governing Glucose value BG_(gov) is not less thanthe first constant BG_(AFL), (i.e., BG_(gov)≥BG_(AFL)), then at block808, the adjustment factor process 800 determines if the GoverningGlucose value BG_(gov) is greater than or equal to the first constantBG_(AFL) and less than the low target BG_(TRL) of the target rangeBG_(TR) (BG_(AFL)≤BG_(gov)<BG_(TRL)). If so, then the adjustment factorprocess 800 assigns the adjustment factor AF to a second pre-configuredadjustment factor AF2, at block 810. If not, then at block 812, theadjustment factor process 800 determines if the Governing Glucose valueBG_(gov) is greater than or equal to the low target BG_(TRL) of thetarget range BG_(TR) and less than the high target level BG_(TRH) of thetarget range BG_(TR) (BG_(TRL)≤BG_(gov)<BG_(TRH)). If so, then theadjustment factor process 800 assigns the adjustment factor AF to athird pre-configured adjustment factor AF3, at block 814. If not, thenat block 816, the adjustment factor process 800 determines if theGoverning Glucose value BG_(gov) is greater than or equal to the hightarget level BG_(TRH) of the target range BG_(TR) and less than thesecond constant BG_(AFH1) (BG_(TRH)≤BG_(gov)<BG_(AFH1)). If so, then theadjustment factor process 800 assigns the adjustment factor AF to afourth pre-configured adjustment factor AF4, at block 818. If not, thenat block 820, the adjustment process 800 determines if the GoverningGlucose value BG_(gov) is greater than or equal to the second constantBG_(AFH1) and less than the third constant BG_(AFH2)(BG_(AH1)≤BG_(gov)<BG_(AFH2)). If so, then the adjustment factor process800 assigns the adjustment factor AF to a fifth pre-configuredadjustment factor AF5, at block 822. If not, then at block 824, theadjustment process 800 determines that the Governing Glucose valueBG_(gov) is greater than or equal to the third constant BG_(AFH2)(BG_(gov)≥BG_(AFH2)); and the adjustment factor process 800 assigns theadjustment factor AF to a sixth pre-configured adjustment factor AF6, atblock 826. After assigning a value to AF the adjustment factor process800 returns the adjustment factor AF to the process requesting theadjustment factor AF at block 828 (e.g., the subcutaneous process (FIGS.9A-9B)).

TABLE 2 Configurable values for Adjustment Factor AF AF1 = 0.8 AF2 = 0.9AF3 = 1 AF4 = 1.1 AF5 = 1.2 AF6 = 1.3

In some examples, a patient 10 may suffer from hypoglycemia during theexecution of the process 200. Hypoglycemia treatment may be needed inthe Intravenous process 300 (FIGS. 3A and 3B) and 400 (FIG. 4A) or inthe Subcutaneous process 900 (FIGS. 9A and 9B). The process 200 includesa sub-process that monitors the current blood glucose value BG of apatient 10 and determines if it is less than a hypoglycemia thresholdBG_(Hypo) (configurable by the hospital or doctor). If the current bloodglucose value BG is less than the hypoglycemia threshold BG_(Hypo), awarning message is displayed on the display 116, 146 warning the patient10, the nurse and the doctor 40 of the patient's condition, the value ofthe low current blood glucose value BG, a reminder to turn off theinsulin (if the hypoglycemia event occurs in the IV Process (FIG. 2)),and a selector that allows the nurse or doctor 40 to select the type ofglucose administered to the patient 10. Some of the selections include:Intravenous D50 (50% glucose by weight) if the patient 10 has anintravenous connection; and Oral glucose (tablets or gel). Once thenurse or doctor 40 enters, using the patient device 110 or the medicalrecord system 140, a type of glucose to be administered to the patient,the process 200 calculates a dose recommendation (or prescribed dose)and displays the calculated dose on the display 116, 146. Moreover, theprocess 200 prompts the nurse or doctor 40 to input via the patientdevice 110 or the hospital device 160, the dose D_(hypo) administered tothe patient 10 to treat the hypoglycemia by grams of glucose may bedetermined based on the following equation:

D _(hypo) (in grams)=F _(HypoTreatment)*(BG_(Target)−BG)  (23)

where BG_(TR) is the blood glucose target range and F_(HypoTreatment) isa hypoglycemia treatment factor that is a configurable constant. In someexamples, the hypoglycemia treatment factor F_(HypoTreatment) equals 0.2(glucose gm/(mg/dl)).

If the nurse or doctor 40 selected a solution (e.g., D50 as opposed tooral glucose), the process 200 uses a different formula to calculate therecommended dose, where the calculated grams of glucose are divided bythe concentration of glucose C_(HypoFluidConc) in the fluid in (grams ofglucose/ml) to obtain the recommended dose in units of solution volume(e.g., ml). The formula is:

D _(hypo) (in ml)=(BG_(TR)−BG)*F _(HypoTreatment) /C_(HypoFluidConc)  (24)

For D50, the hypoglycemic fluid concentration is 0.5 grams ofglucose/ml.

Referring to FIGS. 2A and 9A-9B, if the user 40 initiates a subcutaneousinsulin process 900 at block 210 or block 600, also referred to as aStandard SubQ Program, the subcutaneous insulin process 900 requests theuser 40 to enter SubQ information 617 for the patient 10, such aspatient diabetes status, subcutaneous type ordered for the patient 10(e.g., Basal/bolus and correction that is intended for patients on aconsistent carbohydrate diet, or Basal and correction that is intendedfor patients who are NPO or on continuous eternal feeds), total dailydosage (TDD) (e.g., calculated using any of EQs. 15A-15C), bolus insulintype (e.g., Novolog), basil insulin type (e.g., Lantus) and frequency ofdistribution (e.g., 1 dose per day, 2 doses per day, 3 doses per day,etc.), basil time, basal percentage of TDD, meal bolus percentage ofTDD, daily meal bolus distribution (e.g., breakfast bolus, lunch bolusand dinner bolus), or any other relevant information. In someimplementations, the patient SubQ information 617 is prepopulated withdefault parameters, which may be adjusted or modified. In some examples,portions of the patient SubQ information 617 is prepopulated withpreviously entered patient subcutaneous information 216 a. Thesubcutaneous insulin process 900 may prompt the request to the user 40to enter the SubQ information 617 on the display 116 of the patientdevice 110. In some implementations, the subcutaneous insulin process900 prompts the request to the user 40 to enter the SubQ information 617on the display 116 of the patient device 110 for new SubQ patients aftertransitioning from being treated with an intravenous treatment as shownin FIG. 9C. For instance, the user 40 may select whether or not tocontinue treating the patient with the subcutaneous insulin process 900.In other implementations, the subcutaneous insulin process 900 promptsthe request on the display 116 for a custom start of new SubQ patientsbeing treated with the subcutaneous insulin process 900 shown in FIG.9D. In some examples, the subcutaneous insulin process 900 prompts therequest on the display 116 for a weight-based start of SubQ patientsbeing treated with the subcutaneous insulin process 900 as shown in FIG.9E. For instance, the user 40 may input the weight (e.g., 108 kg) of thepatient 10, and in some examples, the TDD may be calculated using EQ.15B based on the patient's weight.

Basal insulin is for the fasting insulin-needs of a patient's body.Therefore, the best indicator of the effectiveness of the basal dose isthe value of the blood glucose BG after the patient 10 has fasted for aperiod of time. Meal Boluses are for the short-term needs of a patient'sbody following a carbohydrate-containing meal. Therefore, the bestindicator of the effectiveness of the Meal Bolus is a blood glucosemeasurement BG tested about one mean insulin-lifetime iLifeRapid afterthe Meal Bolus, where the lifetime is for the currently-used insulintype. For rapid-acting analog insulin the lifetime is convenientlysimilar to the time between meals. The SubQ process 900 begins with themanual entry of a blood glucose value BG at block 902. Then the SubQprocess 900 determines the type of the blood glucose value BG, i.e., thetime that the blood glucose BG is measured, e.g., midsleep, breakfast,lunch, dinner, or bedtime. In some examples, the subcutaneous insulinprocess 900 includes a default setup of three meals per day, but abedtime snack or other additional meals may be configurable.

At block 904, the subcutaneous insulin process 900 determines if theblood glucose type BG_(type) is Midsleep (measured during a patient'smidsleep). If so, then the subcutaneous insulin process 900 calculates amidsleep correction dose CB_(Midsleep) of insulin at block 914, usingthe following equation (based on EQ. 2):

CB_(Midsleep)=(BG_(Midsleep)−BG_(Target))/CF;  (25)

or by the Correction Bolus Function, process 700, (FIG. 7), and sendsthe blood glucose value BG at midsleep BG_(Midsleep) (received at block902) to block 942.

If the entered blood glucose BG is not measured during midsleep, i.e.,BG_(type) is not equal MidSleep, then the subcutaneous insulin process900 determines if the blood glucose type BG_(type) is measured duringbreakfast (BG_(type)=Breakfast) at block 906. If so, then thesubcutaneous insulin process 900 calculates a breakfast correction doseCB_(Breakfast) of insulin at block 916, using the following equation(based on EQ. 2):

CB_(Breakfast)=(BG_(Breakfast)−BG_(Target))/CF;  (26)

and the patient 10 is administered the breakfast correction doseCB_(Breakfast) as soon as possible. Block 906 sends the blood glucosevalue BG at breakfast to block 924 and block 950. At block 924, thenurse 40 administers the patient 10 with the breakfast bolusRecBreakBol_((current))), and then passes the breakfast blood glucoseBG_(Breakfast) to block 936 (where the next Recommendation Breakfastbolus is calculated after the lunch BGtype is entered). Once the lunchblood glucose is entered at block 902, and the adjustment factorparameter AF based on the lunch blood glucose is determined (FIG. 8),the adjustment factor AF is also sent to block 936. At block 936, theprocess 900 determines the next recommended Breakfast BolusRecBreakBol_((Next)) based on the following equation:

RecBreakBol_((Next))=(RecBreakBol_((current)))*AF  (27)

At block 950, the subcutaneous insulin process 900 determines if thebreakfast blood glucose BG_(Breakfast) has been tested, if not then thesubcutaneous insulin process 900 blocks basal recommendation, and postsa warning, displayed on the display 116, 146, to the patient 10, nurseand doctor 40 at block 954 and is stored in the non-transitory memory24, 114, 144 at block 954. However, if the breakfast blood glucoseBG_(Breakfast) has been tested, then the subcutaneous insulin process900 selects, at block 942, the Governing blood glucose BG_(gov) as thelesser of the two blood glucose values, i.e., the midsleep blood glucoseBG_(MidSleep) or the breakfast blood glucose BG_(Breakfast), as shown inthe following equation:

BG_(gov) (for Basal adjustment)=MIN(BG_(MidSleep) orBG_(Breakfast))  (28)

In some implementations, the governing blood glucose BG_(gov) for Basalis the lesser of the MidSleep blood glucose BG_(MidSleep) or thebreakfast blood glucose BG_(Breakfast) unless the system 100 determinesthat the MidSleep blood glucose BG_(MidSleep) caused a Correction bolusdose CB greater than a maximum value (MSCorrMAX), and the followingequation applies:

(Time of BG_(Breakfast)−Time of BG_(MidSleep) Correctiondose)<DTmin  (29)

where DT_(min) is a preset time window. In other words:

 { IF {(TbreakfastBG − TMSCorr) > DTmin} AND  {MidSleep Correction >MSCorrMAX} THEN {BGgov for Basal} = MAX{ pre-breakfastBG, MidSleepBG} ELSE {BGgov for Basal} = MIN{pre-breakfastBG, MidSleepBG} }

After determining the governing blood glucose BG_(gov), the subcutaneousinsulin process 900 determines the adjustment factor AF at block 944(see. FIG. 8). The adjustment factor process 800, returns the adjustmentfactor AF as a function of the governing blood glucose BG_(gov). Thesubcutaneous insulin process 900 sends the adjustment factor AF to block946, where the subcutaneous insulin process 900 determines theadjustment to the patient's insulin dose by the following equation:

RecomBasal=(previous RecomBasal_(PM))*AF,  (30)

and the nurse 40 give the patient 10 the Recommended basal doseRecomsBasal at block 948.

In some implementations, where the patient 10 receives multiple Basaldoses per day, the subcutaneous insulin process 900 provides the patient10 with equal doses each time. Therefore, the recommended basal dosesRecomBasal for a full day are equal to the first recommended basal doseof Eq. 30. This makes it possible to administer the morning Basal doseRecomBasal immediately after the Breakfast BG has been tested.

For meal Bolus adjustments, the adjustment is applied to the meal bolusof the same meal of the previous day (known as the Governing Meal BolusMB_(gov)). An equivalent statement is that the next day's meal bolus isthe adjustment applied to the current meal bolus. The adjustment isbased on the Governing Blood Glucose BG_(gov), which is the nextscheduled blood glucose BG, following the Governing Meal Bolus MB_(gov).The adjustment value is determined by the Adjustment Factor process 800(FIG. 8), whose input is the Governing Blood Glucose BG_(gov) and whoseoutput is the adjustment factor AF. The adjustment factor AF ismultiplied by the Governing Meal Bolus MB_(gov) to obtain the adjustedRecommended Meal Bolus RecMealBol.

If either the governing blood glucose BG_(gov) or the governing mealbolus MB_(gov) is missing, then the previous day's Recommended MealBolus RecMealBol_(prev) is kept in place.

The SubQ process 900 is designed with three meals during the day,Breakfast, Lunch, Dinner. Considering the lunch as the meal, after theblood glucose BG is manually entered at block 902, the SubQ process 900,at block 908, determines that the blood glucose type, BG_(type) islunch, i.e., BG_(Lunch). the SubQ process 900, at block 918 determinesthe correction dose based on the following equation (based on EQ. 2):

CB_(Lunch)=(BG_(Lunch)−BG_(Target))/CF,  (31)

Once the SubQ process 900 determines the correction dose, the dose isdisplayed on the display 114, 146 so that the nurse 40 can administerthe dose to the patient 10 as soon as possible.

The current Recommended Lunch Bolus is available at block 962; it hasbeen available since the previous day's Dinner BG. This currentRecommended Lunch Bolus is displayed on the display, and the nurse givesthe Lunch Bolus RecLunchBol_(Current) at block 926. The SubQ process 900does not determine a new recommended dose until the Dinner blood glucoseis tested at block 910. Then the dinner blood glucose BG serves as theBG_(gov) for the Lunch Bolus and the SubQ process sends the BG_(gov) toblock 932, which is the input/output box of the adjustment factorprocess 800. The adjustment factor process 800 returns the adjustmentfactor parameter AF, which is in turn sent to block 938. At block 938,the process determines the Next Recommended Lunch Bolus,RecLunchBol_(Next) based on the following equation:

RecLunchBol_(Next)=RecLunchBol_(Current)*AF  (32)

The other meals, Breakfast and Dinner follow the same pattern as theexample of Lunch set forth above.

Considering dinner as the meal, after the blood glucose BG is manuallyentered at block 902, the SubQ process 900, at block 910, determinesthat the blood glucose type, BG_(type) is dinner. The SubQ process 900,at block 920 determines the correction dose based on the followingequation (based on EQ. 2):

CB_(Dinner)=(BG_(Dinner)−BG_(Target))/CF,  (33)

Once the SubQ process 900 determines the correction dose, the dose isdisplayed on the display 116, 146 so that the nurse 40 can administerthe dose to the patient 10 as soon as possible.

The current Recommended Dinner Bolus RecDinnerBolus_(Current) isavailable at block 962; it has been available since the previous day'sBedtime blood glucose_(Bedtime). This current Recommended Dinner Bolusis displayed on the display, and the nurse gives the patient 10 therecommended Dinner Bolus RecDinnerBolus_(current) at block 928. The SubQprocess 900 does not determine a new recommended dose RecomBolus untilthe bedtime blood glucose is tested at block 912. Then the bedtime bloodglucose BG serves as the BG_(gov) for the dinner Bolus and the SubQprocess sends the BG_(gov) to block 934, which is the input/output boxof the adjustment factor process 800. The adjustment factor process 800returns the adjustment factor parameter AF, which is in turn sent toblock 940. At block 940, the process 900 determines the Next recommendedDinner Bolus RecDinnerBolus_(Next) based on the following equation:

RecDinnerBolusNext=RecDinnerBolus_(Current)*AF  (34)

When the SubQ process 900 determines that the blood glucose BG typeBG_(type) is bedtime BG_(Bedtime) (i.e., the blood glucose BG is takenat bedtime) at block 912, the SubQ process 900 determines at block 922the correction dose (based on EQ. 2):

CB_(Bedtime)=(BG_(Bedtime)−BG_(Target))/CF,  (35)

As previously mentioned, the SubQ process 900 is configurable to addadditional blood glucose BG measurements having blood glucose typeBG_(type) of miscellaneous, as shown in block 956. The SubQ process 900determines a correction dose at block 958.

RecMiscBolus_(Next)=(RecMiscBolus_(Current))*AF  (36)

FIG. 10 shows the SubQ for Tube-Fed Patients process 1000 for criticallyill patients who are ordered nil per os (NPO), which means that oralfood and fluids are withheld from the patient 10. This process 1000 isdesigned specifically for patients 10 who are receiving a nutritionformula via a tube to the stomach or intravenous TPN (total parenteralnutrition). TPN is when the patient 10 is only receiving nutritionalbenefits intravenously. Neither TPN nor Tube-Fed patients require mealboluses because they are not eating meals. Instead, they are given equalboluses of Rapid-Acting insulin at equally-spaced scheduled times aroundthe clock to meet the continuous insulin needs of their continuoustube-feeding or TPN nutrition; these boluses are called Equal-Boluses(EqBolus).

SubQ for Tube-Fed Patients process 1000 allows the nurse or doctor 40 todivide the day into equal intervals, via the display 110, 140. Inaddition, the nurse or doctor 40 can choose the number of scheduledblood glucose measurements BG per day, which equals the number ofintervals per day. Each interval includes a scheduled blood glucosemeasurement BG and an Equal-Bolus EqBolus. The scheduled blood glucosetimes are: Tsched1; Tsched2; Tsched3 . . . etc., with associated bloodglucoses BG1; BG2; BG3 . . . etc. The SubQ for Tube-Fed Patients process1000 displays the time and BG number of the next-scheduled bloodglucose, via the display 110, 140 at block 1040. Optionally, the SubQfor Tube-Fed Patients process 1000 may employ a countdown timer 1050 toobtain the blood glucose measurements BG at the proper times.

To prevent the BG schedule from “migrating around the clock-face”, thefollowing method is used: The SubQ for Tube-Fed Patients process 1000determines if the time at which the blood glucose BG was measuredBG_(Time) falls within one of the intervals listed above. If so, thenthe countdown timer 1050 is set to time-out on the next scheduled bloodglucose time Tsched1, Tsched2, Tsched3, . . . etc. Each interval isconfigured with a start time margin (M_(Start)) and an end time margin(M_(End)). The SubQ for Tube-Fed Patients process 1000 may be summarizedas follows:

IF [(T_(sched1)−M_(Start))<BG_(Time)<=(T_(sched1)+M_(End))]; THEN Setcountdown timer to time-out at T_(sched2);IF [(T_(sched2)−M_(Start))<BG_(Time)<=(T_(sched2)+M_(End))]; THEN Setcountdown timer to time-out at T_(sched3) . . . and so on.In some examples, where there are four intervals configured, then thelast interval's logic is as follows:IF [(T_(sched4)−M_(Start))<BG_(Time)<=(T_(sched4)+M_(End))]; THEN Setcountdown timer to time-out at T_(sched1).

In some implementations, the SubQ for Tube-Fed Patients process 1000provides two blood glucose schedule plans: Six blood glucose BG testsper day; or four blood glucose BG tests per day. The nurse or doctor 40can select which one to use for a specific patient 10. The first bloodglucose plan for six blood glucose measurements per day includes thefollowing details: each scheduled blood glucose measurement is fourhours apart from the next, e.g., 00:00, 04:00, 08:00, 12:00, 16:00, and20:00, with a start margin M_(start) of 2 hours and an end marginM_(end) of 2 hours. If a blood glucose measurement BG falls within theinterval (i) from {T_(sched)(i)−2 hrs} to {T_(sched)(i)+2 hrs} theCountdown Timer is set to expire on the next scheduled time, T_(sched)(i+1).

The second blood glucose plan for four blood glucose measurements perday is shown in FIG. 10. FIG. 10 further shows a miscellaneous bloodglucose measurement that is not scheduled. The blood glucosemeasurements are each scheduled six hours apart from the next at 00:00,06:00, 12:00, and 18:00, with a start margin M_(start) of 4 hours and anend margin M_(end) of 2 hours. If a the blood glucose measurement fallswithin the interval (i) from {T_(sched)(i)−4 hrs} to {T_(shed)(i)+2 hrs}the Countdown Timer is set to expire on the next scheduled BGT_(sched)(i+1). All four of the blood glucose BG tests.

TABLE 3 Blood Glucose Measurement every 6 hours Start Margin (M_(Start))4 hours End Margin (M_(End)) 2 hours T_(sched)1 00:00 T_(sched)2 06:00T_(sched)3 12:00 T_(sched)4 18:00

The SubQ for Tube-Fed Patients process 1000 starts with a manual bloodglucose measurement BG entry accompanied by the blood glucosemeasurement time BG_(Time) at block 1002. At block 1080, an interactivepopup asks the user if the blood glucose is a “Scheduled BG” or amiscellaneous (‘Misc”) blood glucose test that is not scheduled. If theuser chooses “Misc”, then the SubQ for Tube-Fed Patients process 1000,at block 1012, assigns a value of “Misc” to the field BGype and recordsthe date-time stamp (“Recorded time”). At block 1030, the SubQ forTube-Feeding process 1000 determines a correction dose CB for the manualblood glucose measurement, using EQ. 2. The SubQ for Tube-Feedingprocess 1000 displays the correction dose CB on the display 116, 146, tothe patient 10, nurse and doctor 40 at block 1040 and stores the valuein non-transitory memory 24, 114, 144 at block 1042.

Returning to block 1080, if the user chooses “Scheduled BG”, the SubQfor Tube-Fed Patients process 1000 determines, at block 1004, if theblood glucose time BG_(Time) is within the interval from(T_(sched1)−M_(start)) to (T_(sched)1+M_(End)). If the blood glucosemeasurement time BG_(Time) is within the interval, i.e.,(T_(sched)1−M_(Start))<BG_(Time) (T_(sched)1+M_(End)), then the SubQ forTube-Fed Patients process 1000, at block 1014, assigns the value “BG1”to the field BGtype, resets the countdown timer to T_(sched) 2 anddisplays a reminder of the next BG time on the display 116, 146 at block1040. Then, the SubQ for Tube-Fed Patients process 1000, at block 1022,determines the correction dose CB based on the blood glucose value BG1,using EQ. 2:

CB=(BG−BG_(Target))/CF  (2)

or using the Correction Dose Function, process 700. The SubQ forTube-Feeding process 1000 displays the correction dose CB on the display116, 146, to the patient 10, nurse and doctor 40 at block 1040 andstores the value in non-transitory memory 24, 114, 144 at block 1042.Additionally, the SubQ for Tube-Fed Patients process 1000, at block1044, uses the blood glucose value BG1 as the governing BG for adjustingthe value of the four Equal-Boluses (EqBolus). Specifically, at block1044, the SubQ for Tube-Fed Patients process 1000 uses the blood glucosevalue BG1 as the input value BG_(gov) for the Adjustment Factor (AF)function for determining a value for the AF. The SubQ for Tube-FedPatients process 1000, at block 1046, retrieves the Previous Day'sRecommended Equal-Bolus from memory 24, 114, 144, and at block 1048,determines a new value for the Recommended Equal-Bolus (e.g., all fourEqBolus) by multiplying the AF value from block 1044 by the PreviousDay's Recommended Equal-Bolus from block 1046. The SubQ for Tube-Feedingprocess 1000 displays the Recommended Equal-Bolus (EqBolus) on thedisplay 116, 146, to the patient 10, nurse and doctor 40 at block 1040and stores the value in non-transitory memory 24, 114, 144 at block1042.

However, if at block 1004 the SubQ for Tube-Fed Patients process 1000determines that the blood glucose measurement time BG_(Time) is notwithin the interval from (T_(sched)1−M_(start)) to (T_(sched1)+M_(End)),the SubQ for Tube-Fed Patients process 1000 determines if the bloodglucose measurement time BG_(Time) is within a second interval(T_(sched)2−M_(start)) to (T_(sched)2+M_(End)) at block 1006, and if so,then the SubQ for Tube-Fed Patients process 1000 at block 1016 assignsthe value “BG2” to the field BGtype, resets the countdown timer toT_(sched)3 and displays a reminder of the next BG time on the display116, 146 at block 1040. Then, the SubQ for Tube-Fed Patients process1000, at block 1024, determines the correction dose CB based on theblood glucose value BG2, using EQ. 2 or using the Correction DoseFunction, process 700.

The SubQ for Tube-Feeding process 1000 displays the correction dose CBon the display 116, 146, to the patient 10, nurse and doctor 40 at block1040 and stores the value in non-transitory memory 24, 114, 144 at block1042. Additionally, the SubQ for Tube-Fed Patients process 1000, atblock 1036, uses the blood glucose value BG2 as the governing BG foradjusting the Basal dose. Specifically, at block 1036, the SubQ forTube-Fed Patients process 1000 uses the blood glucose value BG2 as theinput value BGgov for the Adjustment Factor (AF) function fordetermining a value for the AF.

The SubQ for Tube-Fed Patients process 1000, at block 1056, retrievesthe last Basal dose of the previous day RecBasal_(Last) from memory 24,114, 144, and at block 1058, determines a current day's RecommendedBasal Dose RecBasal by multiplying the AF value by the RecBasal_(Last),as follows:

RecBasal=(RecBasal_(Last))*AF  (37)

The SubQ for Tube-Feeding process 1000 displays the RecBasal on thedisplay 116, 146, to the patient 10, nurse and doctor 40 at block 1040and stores the value in non-transitory memory 24, 114, 144 at block1042.

However, if at block 1006 the SubQ for Tube-Fed Patients process 1000determines that the blood glucose measurement time BG_(Time) is notwithin the interval from (T_(sched)2−M_(Start)) to (T_(sched)2+M_(End)),the SubQ for Tube-Fed Patients process 1000 determines if the bloodglucose measurement time BG_(Time) is within a third interval(T_(sched)3−M_(start)) to (T_(sched)3+M_(End)) at block 1008, and if so,then the SubQ for Tube-Fed Patients process 1000 at block 1018 assignsthe value “BG3” to the field BGtype, resets the countdown timer toT_(sched)4 and displays a reminder of the next BG time on the display116, 146 at block 1040. Then, the SubQ for Tube-Fed Patients process1000, at block 1026, determines the correction dose CB based on theblood glucose value BG3, using EQ. 2 or using the Correction DoseFunction, process 700.

However, if at block 1008 the SubQ for Tube-Fed Patients process 1000determines that the blood glucose measurement time BG_(Time) is notwithin the interval from (T_(sched)3−M_(Start)) to (T_(sched)3+M_(End)),the SubQ for Tube-Fed Patients process 1000 determines if the bloodglucose measurement time BG_(Time) is within a fourth interval(T_(sched)4−M_(start)) to (T_(sched)4+M_(End)) at block 1010, and if so,then the SubQ for Tube-Fed Patients process 1000 at block 1020 assignsthe value “BG4” to the field BGtype, resets the countdown timer toT_(sched1) and displays a reminder of the next BG time on the display116, 146 at block 1040. Then, the SubQ for Tube-Fed Patients process1000, at block 1028, determines the correction dose CB based on theblood glucose value BG4, using EQ. 2 or using the Correction DoseFunction, process 700.

FIG. 11 describes a SubQ Without Meal Boluses process 1100, where theblood glucose measurements BG are deferred until after the meals,resulting in large after-meal correction boluses that incorporateinsulin to cover the meals. The SubQ Without Meal Boluses process 1100divides the day into intervals that may be of equal duration or unequalduration. Each interval includes a scheduled blood glucose measurementBG. In some examples, the SubQ Without Meal Boluses process 1100includes five blood glucose measurements BG per day. The SubQ WithoutMeal Boluses process 1100 may be configured to include other numbers oftime intervals. In addition, the SubQ Without Meal Boluses process 1100includes configurable blood glucose BG measurement times. In someexamples, the measurement schedule includes blood glucose measurementsBG places about one to three hours after regular mealtimes, which is anappropriate timing for post-meal correction.

The scheduled Blood glucose measurement times BG times are named with aT_(sched)0, T_(sched)1, T_(sched)2 etc. The Time-intervals are marked byTime Boundaries, named “T_(bound)” with numbered subscripts. Thesetime-values are configurable. An example of default times are shown inthe following table:

TABLE 4 Default Times T_(bound0) = 0:00 BG_(MidSleep): T_(sched1) =03:00 T_(bound1) = 05:00 BG_(Before-Breakfast): T_(sched2) = 07:00T_(bound2) = 08:00 BG_(After-Breakfast): T_(sched3) = 10:00 T_(bound3) =11:00 BG_(After-Lunch): T_(sched4) = 15:00 T_(bound4) = 18:00BG_(Bedtime): T_(sched5) = 22:00

Similar to the SubQ for tube-fed patients process 1000 (FIG. 10), theSubQ Without Meal Boluses process 1100 (FIG. 11) includes a countdowntimer 1001 used to obtain the blood glucose BG tests at the propertimes.

To prevent the BG schedule from “migrating around the clock-face”, thefollowing method is used:

The SubQ Without Meal Boluses process 1100 determines if the time atwhich the blood glucose BG was measured BG_(Time) falls within one ofthe intervals. If so, then the countdown timer is set to time-out on thenext interval's scheduled blood glucose measurement T_(sched1),T_(sched2), T_(sched3), . . . etc. This can be thought of as a“snap-to-the-schedule” feature. Each interval is configured with a starttime margin (M_(start)) and an end time margin (M_(End)). The SubQWithout Meal Boluses process 1100 may be summarized as follows:

IF [T_(bound0)≤Br_(Time)≤T_(bound1)]; THEN Set countdown timer totime-out at T_(sched2)IF [T_(bound1)<BG_(Time)≤T_(bound2)]; THEN Set countdown timer totime-out at T_(sched3)IF [T_(bound2)≤Br_(Time)≤T_(bound3)]; THEN Set countdown timer totime-out at T_(sched4)IF [T_(bound3)≤BG_(Time)≤T_(bound4)]; THEN Set countdown timer totime-out at T_(sched5)IF [T_(bound4)≤BG_(Time)≤T_(bound0)]; THEN Set countdown timer totime-out at T_(sched1)

The SubQ Without Meal Boluses process 1100 starts with a manual bloodglucose measurement BG entry accompanied by the blood glucosemeasurement time BG_(Time) at block 1102. Then at block 1104, the SubQWithout Meal Boluses process 1100 determines if the blood glucosemeasurement time BG_(Time) is within the interval from T_(bound0) toT_(bound1). If the blood glucose measurement time BG_(Time) is withinthe interval, i.e., T_(bound0)<BG_(Time)≤T_(bound1), then the SubQWithout Meal Boluses process 1100, at block 1114, resets the countdowntimer to T_(sched)2. Then the SubQ Without Meal Boluses process 1100,determines a correction dose CB at block 1122, using EQ. 2.

However, if at block 1104 the SubQ Without Meal Boluses process 1100determines that the blood glucose measurement time BG_(Time) is notwithin the interval from T_(bound0) to T_(bound1), the SubQ Without MealBoluses process 1100 determines if the blood glucose measurement timeBG_(Time) is within a second interval T_(bound1) to T_(bound2), and ifso then the SubQ Without Meal Boluses process 1100 at block 1116, resetsthe countdown timer to T_(sched)3 and at block 1124, determines acorrection dose CB, using EQ. 2.

However, if at block 1106 the SubQ Without Meal Boluses process 1100determines that the blood glucose measurement time BG_(Time) is notwithin the interval from T_(bound1) to T_(bound2), the SubQ Without MealBoluses process 1100 determines if the blood glucose measurement timeBG_(Time) is within a third interval T_(bound2) to T_(bound3) at block1108, and if so then the SubQ Without Meal Boluses process 1100 at block1118, resets the countdown timer to T_(sched)4 and at block 1126,determines a correction dose CB, using EQ. 2.

However, if at block 1108 the SubQ Without Meal Boluses process 1100determines that the blood glucose measurement time BG_(Time) is notwithin the third time interval from T_(bound2) to T_(bound3), the SubQWithout Meal Boluses process 1100 determines if the blood glucosemeasurement time BG_(Time) is within a fourth interval T_(bound3) toT_(bound4), and if so then the SubQ Without Meal Boluses process 1100 atblock 1120, resets the countdown timer to T_(sched5) and at block 1128,determines a correction dose CB, using EQ. 2.

However, if at block 1110 the SubQ Without Meal Boluses process 1100determines that the blood glucose measurement time BG_(Time) is notwithin the fourth time interval from T_(bound3) to T_(bound4), the SubQWithout Meal Boluses process 1100 determines if the blood glucosemeasurement time BG_(Time) is within a fifth interval T_(bound4) toT_(bound5), and if so then the SubQ Without Meal Boluses process 1100 atblock 1130, resets the countdown timer to T_(sched1) and at block 1131,determines a correction Dose CB, using EQ. 2.

As shown, the SubQ Without Meal Boluses process 1100 repeats itself fivetimes since there are five scheduled blood glucose measurement BG;however, the SubQ Without Meal Boluses process 1100 may include more orless time intervals.

The SubQ Without Meal Boluses process 1100 adjusts the basal insulindosage by first determining the Governing blood glucose BG_(gov) atblock 1134. The SubQ Without Meal Boluses process 1100 determines theGoverning blood glucose BG_(gov) as the blood glucose BG closest to06:00 earlier on the same day as the basal dose whose recommendation isbeing calculated. To insure that the closest blood glucose BG isobtained, the basal dose is not allowed until an elapsed time after06:00 equal to the elapsed time from the preceding BG until 0600. Thisis to insure that all opportunity for “another BG closer to 0600” haspassed.

The SubQ Without Meal Boluses process 1100 passes the Governing bloodglucose BG_(gov) from block 1134 to block 1136, which determines theadjustment factor AF (see FIG. 8) and passes it to block 1138. At block1138, the SubQ Without Meal Boluses process 1100 determines the currentday's recommended first basal dose using the following equation:

RecBasal_(First)=(RecBasal_(Last(prev)))*AF,  (38)

The basal dose may be one of several administered to the patient 10during the day, but all the doses are kept at the same value.

The process 1000 displays the correction dose CB and the recommendedbasal dose on the display 116, 146, to the patient 10, nurse and doctor40 at block 1140 and stores the values in non-transitory memory 24, 114,144 at block 1142.

Referring to FIG. 12, the Meal-by-Meal SubQ WithoutCarbohydrate-counting process 1200 calculates the Recommended Meal Bolusby employing the preceding Meal Bolus (of any type or time-of-day) asthe Governing Meal Bolus MB_(gov) and employing the next blood glucosefollowing the Governing Meal Bolus as the Governing Blood GlucoseBG_(gov). This means BG_(gov) is often the current BG in real-time.

The Correction Boluses and Basal Dose adjustment are conducted similarto the Standard SubQ process 300 (FIGS. 9A and 9B). Therefore, acorrection dose is determined at blocks 1214, 1216, 1218, 1220, 1222,1258 based on the blood glucose type.

The Meal Bolus Adjustment portion of the Meal-by-Meal SubQ process 1200begins with a manual blood glucose measurement BG entry at block 1202.If the blood glucose measurement BG is determined by block 1204 to be ablood glucose type BG_(type) of a Midsleep BG, then the process 900sends the blood glucose measurement to block 1242. If the blood glucosemeasurement BG is not a blood glucose type BG_(type) of a Midsleep BG,then Meal-by-Meal SubQ process 1200 determines at block 1206 whether theBG is a Breakfast blood glucose BG_(Breakfast). If the BG is determinedat block 1206 to be a Breakfast blood glucose BG_(Breakfast), then atblock 1250, the process 1200 determines if the breakfast blood glucoseBG_(Breakfast) has been tested, if not then the process 1200 blocksbasal recommendation, and posts a warning, displayed on the display 116,146, to the patient 10, nurse and doctor 40 at block 1254 and is storedin the non-transitory memory 24, 114, 144 at block 1251. However, if thebreakfast blood glucose BG_(Breakfast) has been tested, then the process1200 selects, at block 1242, the Governing blood glucose BG_(gov) as thelesser of the two blood glucose values, i.e., the midsleep blood glucoseBG_(MidSleep) or the breakfast blood glucose BG_(Breakfast), as shown inEQ. 28 (above).

After determining the governing blood glucose BG_(gov), the process 1200determines the adjustment factor AF at block 1244 (see. FIG. 8). Theadjustment factor process 800, returns the adjustment factor AF as afunction of the governing blood glucose BG_(gov). The process 1200 sendsthe adjustment factor AF to block 1246, where the process 1200determines the adjustment to the patient's insulin dose by the followingEQ. 30, then the nurse 40 give the patient 10 the Recommended basal doseRecomsBasal at block 1248.

If the Meal-by-Meal SubQ process 1200, at block 1206, determines thatthe blood glucose measurement BG is not a breakfast blood glucosemeasurement BG_(Breakfast), then it is passed to block 1208 where adetermination is made whether the blood glucose measurement BG is aLunch blood glucose BG_(Lunch). If it is a Lunch blood glucoseBG_(Lunch), then block 1208 routes the Lunch BG to block 1230 where itis used as the input (BGgov) for the AF Function. The AF Functionreturns a value of the Adjustment Factor (AF), which is routed to block1238 where the Recommended Lunch Bolus is calculated by the followingequation:

RecLunchBol=AF*RecBreakfastBol_(Prev)  (39)

The process 1200 sends the Recommended Lunch Bolus RecLunchBolus to theremote processor at block 1254, to the display 114, 146, at block 1252,and to block 1240 for Dinner bolus calculation.

If the blood glucose BG is determined at block 1208 to not be a Lunchblood glucose BG_(Lunch), then it is routed to block 1210. If the BG isdetermined by block 1210 to be a Dinner blood glucose BG_(Dinner), thenthe blood glucose BG is routed to block 1232 where it is used as theinput (BG_(gov)) for the adjustment factor process 700. The AF Functionreturns a value of the Adjustment Factor AF, which is routed to block1240. The preceding Recommended Lunch Bolus is available at block 1240,which has all the necessary data to calculate the Recommended DinnerBolus by the following equation:

RecDinnerBol=AF*(RecLunchBolrev)  (40)

The process 1200 sends the Recommended Dinner Bolus, RecDinnerBol to theremote processor at block 1254, to the display 114, 146, block 1252, andto block 1236 for the next day's Breakfast bolus calculation.

If the process 1200 determines the blood glucose BG at block 1210 to notbe a Dinner BG, then the process 1200 routes the blood glucose BG toblock 1212. If the process 1200 determines the blood glucose BG at block1212 to be a Bedtime BG, then the process 1200 routes the BG to block1234 where it is used as the input (BG_(gov)) for the AF Function. TheAF Function returns a value of the Adjustment Factor (AF), which isrouted to block 1236. The preceding Recommended Dinner Bolus (from theprevious day) is available at block 1236, which has all the necessarydata to calculate the Recommended Breakfast Bolus by the followingequation:

RecBreakfastBol=AF*(RecDinnerBolrev)  (41)

The process 1200 sends the Recommended Breakfast Bolus to the remoteprocessor at block 1254, to the Subject Data Display, block 1252, and toblock 1238 for Lunch bolus calculation.

The Meal-by-Meal SubQ With Carbohydrate-counting program calculates theRecommended Meal Bolus by dividing the carbohydrates in the upcomingmeal by CIR (Carbohydrate-to-Insulin Ratio). The Carbohydrate-to-InsulinRatio CIR is in the form of a single parameter that is re-calculated ateach meal and passed to the next meal. The Governing CIR is defined asthe CIR passed to the current meal from the preceding meal. The processemploys the next blood glucose BG following the Governing CIR as theGoverning BG (BG_(gov)). This means BG_(gov) is often the current BG inreal-time.

The Correction Boluses and Basal Dose adjustment are conducted similarto the Standard SubQ process 300 (FIGS. 9A and 9B). Therefore, acorrection dose CB is determined at blocks 1314, 1316, 1318, 1320, 1322,1258 based on the blood glucose type.

Referring to FIGS. 13A and 13B, the Meal Bolus Adjustment portion of theMeal-by-Meal Process 1300 begins with a manual BG entry at block 1302.If the process 1300 determines the blood glucose value BG at block 1304to not be a Midsleep BG, then the process 1300 makes a determination atblock 1306 whether the BG is a Breakfast BG. If the process 1300determines the blood glucose BG at block 1308 to be a Breakfast bloodglucose BG_(breakfast), then at block 1350, the process 1300 determinesif the breakfast blood glucose BG_(Breakfast) has been tested. If not,then the process 1300 blocks basal recommendation and posts a warning,displayed on the display 116, 146, to the patient 10, nurse, and doctor40 at block 1354. The process 1300 stores the warning in thenon-transitory memory 24, 114, 144 at block 1351. If, however, thebreakfast blood glucose BG_(Breakfast) has been tested, then the process1300 selects, at block 1342, the Governing blood glucose BG_(gov) as thelesser of the two blood glucose values, i.e., the midsleep blood glucoseBG_(MidSleep) or the breakfast blood glucose BG_(Breakfast), as shown inEQ. 28 (above).

After determining the governing blood glucose BG_(gov), the process 1300determines the adjustment factor AF at block 1344 (see. FIG. 8). Theadjustment factor process 800 returns the adjustment factor AF as afunction of the governing blood glucose BG_(gov). The process 1300 sendsthe adjustment factor AF to block 1246, where the process 1300determines the adjustment to the patient's insulin dose by the followingEQ. 30, then the nurse 40 gives the patient 10 the Recommended basaldose RecomsBasal at block 1348.

If the process 1300 determines the blood glucose BG at block 1306 to notbe a Breakfast BG, then the process 1300 passes the blood glucose BG toblock 1308, where the process 1300 determines whether the blood glucoseBG is a lunch blood glucose BG_(lunch). If the blood glucose BG is aLunch blood glucose BG_(lunch), then the process 1300, at block 1308,routes the lunch blood glucose BG_(lunch) to block 1330, where it isused as the input (BG_(gov)) for the adjustment factor AF Function. Theadjustment factor AF Function (FIG. 8) returns a value of the AdjustmentFactor AF, which is routed to block 1334 where theCarbohydrate-to-Insulin Ratio (CIR) is calculated by the followingformula:

CIR=(CIR from Breakfast)/AF  (42)

The Meal-by-Meal with Carb-Counting process 1300 routes theCarbohydrate-to-Insulin Ratio CIR to block 1338 where the RecommendedLunch Bolus is calculated as follows:

RecLunchBolus=(Carbohydrate gms in Lunch)/CIR  (43)

The Carbohydrate-to-Insulin Ratio CIR is also sent from block 1334 toblock 1336 for use in the upcoming Dinner calculations.

If the process 1300 determines the blood glucose BG at block 1308 to notbe a lunch blood glucose BG_(lunch), then the process 1300 routes theblood glucose BG to block 1310. If the process 1300 determines the bloodglucose BG at block 1310 to be dinner blood glucose BG_(dinner), thenthe process 1300 routes the blood glucose BG to block 1332, where it isused as the input (BG_(gov)) for the adjustment factor AF Function. Theadjustment factor AF Function returns a value of the Adjustment Factor(AF), which the process 1300 routes to block 1336, where theCarbohydrate-to-Insulin Ratio CIR is calculated by the followingformula:

CIR=(CIR from Lunch)/AF  (44)

The Meal-by-Meal with Carb-Counting process 1300 routes the CIR to block1340 where the Recommended Dinner Bolus is calculated as follows:

RecDinnerBol=(Carbohydrate gms in Dinner)/CIR  (45)

The Carbohydrate-to-Insulin Ratio CIR is also sent from block 1336 toblock 1332 for use in the upcoming Breakfast calculations. The process1300 sends the Recommended Dinner Bolus, RecomDinnerBol to the remoteprocessor at block 1354, and to the display 114, 146, block 1352.

If the process 1300 determines the blood glucose BG at block 1310 to notbe a Dinner BG, then the process 1300 routes the blood glucose BG toblock 1312. If the process 1300 determines the blood glucose BG at block1312 to be a Bedtime BG, then the process 1300 routes the blood glucoseBG to block 1330, where it is used as the input (BGgov) for the AFFunction. The AF Function returns a value of the Adjustment Factor (AF),which is routed to block 1332, where the Carbohydrate-to-Insulin Ratio(CIR) is calculated by the following formula at block 1334:

CIR=(CIR from Dinner)/AF  (46)

The Meal-by-Meal with Carb-Counting process 1300 routes the CIR to block1336 where the Recommended Breakfast Bolus is calculated as follows:

RecBreakfastBol=(Carbohydrate gms in Breakfast)/CIR  (47)

The CIR is also sent from block 1330 to block 1334 for use in theupcoming Lunch calculations. The process 1300 sends the RecommendedBreakfast Bolus to the remote processor at block 1354, and to theSubject Data Display at block 1352.

FIG. 14 shows a subcutaneous process 1400 for non-diabetic patients 10who have a temporary condition of diabetes-like symptoms. A typicalexample is stress-hyperglycemia, a condition that is encountered whenthe patient's body is under stress due to surgery, certain medications,or another disease other than diabetes. The stress causes the patient'sbody to react by raising the blood glucose. As the patient recovers,this hyperglycemic condition typically disappears, sometimes rapidly,leaving the patient without need of insulin. The principle of theprocess is to rapidly reduce the entire insulin dosing regimen of thepatient by a factor NonDMfactor, whenever a blood glucose measurement BGfalls below a threshold.

The Non-DM process 1400 begins at block 1402 with a blood glucosemeasurement BG. The process 1400 determines at block 1460 if the bloodglucose BG is below a threshold for insulin reduction NonDMfloor. If theblood glucose BG is less than the values of the last recommendedNonDMfloor, the process 1400 reduces, at block 1462, the value of allthe last-recommended insulin doses in a table at block 1463, bymultiplying each value by a dimensionless configurable constant whosevalue is between 0 and 1, threshold for insulin reduction NonDMfactor.The group at block 1463 includes the last-recommended-doses such asBreakfast Bolus BG_(Breakfast), Lunch Bolus BG_(Lunch), Dinner BolusBG_(Dinner), and Basal Dose, irrespective of whether the dose has beengiven or not. In other words, the latest recommendation (or prescribeddose) is changed whether a dose was given or not. In manyimplementations, the threshold for insulin reduction NonDMfactor isconfigured to a value of 0.5.

Corrective insulin may also be reduced. This is accomplished by raisingthe Correction Factor CF as follows: Returning to block 1462, the logicis passed to block 1464, where a value of Total Daily Dose of InsulinTDD is recalculated each time the dose is reduced. This is accomplishedby summing all the newly-reduced values of the last recommended valuesof meal boluses and basal doses. The process 1400 passes the TDD toblock 1466, where a live Correction Factor is calculated as follows:

CF=CFR/TDD  (46)

Returning to block 1402, the process 1400 routes the blood glucose BG toblock 1404 where the process 1400 determines if the blood glucose typeBG_(type) is MidSleep BG_(Midsleep). If so, then the process 1400 routesthe MidSleep blood glucose BG_(Midsleep) to block 1442. If it isdetermined at block 1405 that the blood glucose type BG_(type) is notMidSleep, the logic is passed to block 1406, where it is determined ifthe blood glucose type BG_(type) is Breakfast BG_(Breakfast). If theblood glucose type BG_(type) is Breakfast BG_(Breakfast), the process1400 calculates a Correction dose CB at block 1416 and is administeredas soon as possible. Also, if blood glucose type BG_(type) is BreakfastBG_(Breakfast), the logic is passed to box 1424, where thepreviously-recommended Breakfast meal bolus is administered. The valueof this previously-recommended Breakfast meal bolus is passed to block1436, where it is one of the two required parameters for calculation ofthe Next Recommended Breakfast Bolus. Returning to block 1406, theprocess 1400 routes the Breakfast BG to box 1450.

The condition at block 1450 is that the administration of basal isblocked by not-posting the recommended Basal dose until the arrival ofthe breakfast blood glucose BG_(Breakfast) from block 1406, where thebreakfast blood glucose BG_(Breakfast) is sent to block 1442. At block1442, the process 1400 determines the governing blood glucose BG_(gov)for Basal adjustment as the lesser of the two blood glucose values,midsleep blood glucose BG_(Midsleep) and breakfast blood glucoseBG_(Breakfast). At block 1444, the process 1400 inputs the governingblood glucose BG_(gov) for Basal into the Adjustment Factor AF Function(FIG. 7), which returns an Adjustment Factor AF for basal adjustment.The process 1400 sends the adjustment factor AF to block 1446, where itis used to calculate the Recommended First Basal Dose of the day by theformula:

Recommended first Basal Dose=AF*(Previous day's last Basal Dose)  (48)

Basal dosing is adjusted only once per day, because a fasting bloodglucose BG is needed as the governing blood glucose BG_(gov), and themidsleep blood glucose BG_(Midsleep) and breakfast blood glucoseBG_(Breakfast) BG are the only reliable fasting blood glucosemeasurements BG during the day. If more than one basal dose is used,then the values are set to be equal to the first basal dose of the day.The last basal dose of the day is used as the Governing Basal Dosebecause it is the most recent dose at the time of the midsleep bloodglucose BG_(Midsleep) and B breakfast blood glucose BG_(Breakfast).

If the process 1400 determines at block 1406 that the Blood Glucose typeBG_(type) is not Breakfast, the logic passes to block 1408, where theprocess 1400 determines if the BG_(type) is Lunch. If the BG_(type) isLunch, the process 1400 calculates a Correction dose CB at block 1418,which is administered as soon as possible. Also, the logic passes to box1426, where the previously-recommended Lunch meal bolus is administered.The process 1400 passes the value of this previously-recommended Lunchmeal bolus to block 1438, where it is one of the two required parametersfor calculation of the Next Recommended Lunch Bolus. Returning to block1408, the process 1400 also routes the lunch blood glucose BG_(lunch) toblock 1430, providing the second of the two required parameters forcalculation of the Next Recommended Breakfast Bolus as follows:

Next Recom. Breakfast Bolus=AF*(Current Recom Breakfast Bolus)  (49)

If it is determined at block 1408 that BG_(type) is not Lunch, the logicpasses to block 1410, where the process 1400 determines if the BG_(type)is Dinner. If the BG_(type) is Dinner, the process 1400 calculates aCorrection dose at block 1420, which is administered as soon aspossible. Also, the logic is passes to box 1428, where thepreviously-recommended Dinner meal bolus is administered. The value ofthis previously-recommended Dinner meal bolus is passed to box 1440,where is one of the two required parameters for calculation of the NextRecommended Dinner Bolus. Returning to block 1410, the process 1400 alsoroutes the Dinner blood glucose BG_(Dinner) to block 1432, providing thesecond of the two required parameters for calculation of the NextRecommended Lunch Bolus as follows:

Next Recom. Lunch Bolus=AF*(Current Recom Lunch Bolus)  (50)

If it is determined at block 1410 that BGtype is not Dinner, the logicpasses to block 1412, where the process 1400 determines if the BG_(type)is Bedtime. If the blood glucose type BG_(type) is Bedtime, the process1400 calculates a Correction dose CB at block 1422, which isadministered as soon as possible. Also, the logic passes to box 1434,providing the second of the two required parameters for calculation ofthe Next Recommended Dinner Bolus as follows:

Next Recom. Dinner Bolus=AF*(Current Recom Dinner Bolus)  (51)

If it is determined at block 1412 that the blood glucose BG_(type) isnot Bedtime, the logic passes to block 1456, where the process 1400determines if the BG_(type) is Bedtime. If the BG_(type) is Bedtime, theprocess 1400 calculates a Correction dose at block 1458, which isadministered as soon as possible. The process 1400 sends the nextrecommended meal bolus to the remote processor at block 1454, and to thedisplay 114, 146, at block 1452.

FIG. 15 provides an arrangement of operations for a method 1500 ofadministering intravenous insulin to a patient 10. The method includesreceiving 1502 blood glucose measurements BG on a computing device(e.g., a processor 112 of a patient device 110, a processor 152 of ahospital electronic medical record system 150, or a data processor 132of a service provider 130) of a dosing controller 160 from a bloodglucose measurement device 124 (e.g., glucose meter or glucometer). Theblood glucose measurements BG are separated by a time interval T_(Next).The method 1500 includes determining 1504, using the computing device112, 132, 152, an insulin dose rate IIR based on the blood glucosemeasurements BG. In some implementations, the method 1500 determines theinsulin dose rate IRR based on the current blood glucose measurement BG,a constant K, and a multiplier M (see EQ. 3A above). The constant K mayequal 60 mg/dl. The method 1500 includes leaving the multiplier Munchanged between time intervals T_(Next) when the current blood glucosemeasurement BG is greater than an upper limit BG_(TRH) of the bloodglucose target range BG_(TR) and the blood glucose percent dropBG_(%Drop) from the previous blood glucose value BG is greater than orequal to a desired percent drop BG % dropM (see EQ. 5). The method alsoincludes multiplying the multiplier M by a change factor M_(CF) when thecurrent blood glucose measurement BG is greater than an upper limitBG_(TRH) of the blood glucose target range BG_(TR) and the blood glucosepercent drop B_(%Drop) (or blood glucose percent drop) is less than thedesired percent drop BG % dropM. Additionally or alternatively, themethod 1500 includes leaving the multiplier M unchanged between timeintervals T_(Next) when the current blood glucose measurement BG is inthe target range BG_(TR) i.e. when BG is less than an upper limitBG_(TRH) of the blood glucose target range and greater than the lowerlimit BG_(TRL) of the target range, BG_(TR). The method also includesdividing the multiplier M by a change factor M_(CF) when the currentblood glucose measurement BG is less than the lower limit BG_(TRL) ofthe blood glucose target range BG_(TR).

The method 1500 may include setting the time interval T_(Next) to ahypoglycemia time interval T_(Hypo) of between about 15 minutes andabout 30 minutes, when the current blood glucose measurement BG is belowa hypo-threshold blood glucose level BG_(Hypo).

The method 1500 includes determining 1506 a blood glucose drop rateBG_(DropRate) based on the blood glucose measurements BG and the timeinterval T_(Next). The method 1500 includes determining 1507 a bloodglucose percent drop BG_(%Drop), using the computing device 112, 132,152 from a previous blood glucose measurement BG_(P). When the bloodglucose drop rate BG_(DropRate) is greater than a threshold drop rateBG_(DropRateLimit), the method 1500 includes decreasing at 1508 the timeinterval T_(Next) between blood glucose measurements measure by theglucometer.

The method 1500 also includes decreasing 1510 the time interval T_(Next)between blood glucose measurements BG when the percent drop BG_(%Drop)of the blood glucose BG is greater than the threshold of the percentdrop % Drop_(Reglar), where the threshold of the percent drop %Drop_(Regular) depends on whether the current blood glucose measurementBG is below a lower limit BG_(TRL) of a blood glucose target rangeBG_(TR). In some implementations, the method 1500 includes decreasingthe time interval T_(Next) when the current blood glucose measurement BGis greater than or equal to the lower limit BG_(TRL) of the bloodglucose target range BG_(TR) and the blood glucose percent dropBG_(%Drop) exceeds a threshold percent drop % Drop_(Regular). In someimplementations, the method 1500 includes decreasing the time intervalT_(Next) when the current blood glucose measurement BG is below thelower limit BG_(TRL) of the blood glucose target range BG_(TR) and abovethe hypo-threshold blood glucose level BG_(Hypo), and the blood glucosepercent drop BG_(%Drop) is greater than or equal to a threshold percentdrop % Drop_(LowLimit).

In some examples, the method 1500 includes leaving the multiplier Munchanged for at least two subsequent time intervals, T_(Next), when thecurrent blood glucose measurement BG is a pre-meal measurement. In someexamples, the method 1500 includes receiving, on the computing device112, 132, 142, a number of carbohydrates for a meal as well as a bloodglucose measurement, and determining, using the computing device 112,132, 142, an intravenous insulin rate IIR based on the blood glucose(this IIR may be calculated using EQ. 3A). In addition, the method 1500includes determining, using the computing device 112, 132, 142, a mealbolus insulin rate IIR based on the number of carbohydrates. The method1500 then calculates a Total insulin rate as the sum of the meal bolusrate and the regular intravenous rate as shown in EQ. 12. The method1500 may further include setting the time interval T_(Next) to about 30minutes. If the blood glucose measurement BG is a second consecutivemeasurement after (but not including) an initial pre-meal blood glucosemeasurement BG, the method 1500 includes setting the time intervalT_(Next) to about 30 minutes.

In some implementations, the method 1500 includes electronicallydisplaying on a display 116, 146 a warning and blocking transition to asubcutaneous administration of insulin when the current blood glucosemeasurement BG is outside a stability target range BG_(STR). Inaddition, the method 1500 includes electronically displaying on thedisplay 116, 146 a warning when the current blood glucose measurement BGis within the patient's personalized target range BG_(TR) for less thana threshold stability period of time T_(Stable). In some examples, themethod 1500 includes determining a total daily dose of insulin TDD basedon the multiplier M when the current blood glucose measurement BG iswithin a stability target range BG_(STR) for a threshold stabilityperiod of time T_(Stable).

Referring to FIG. 16, a method 1600 of administering insulin includesreceiving 1602 blood glucose measurements BG of a patient 10 at a dataprocessing device 112 from a glucometer 124. The blood glucosemeasurements BG are separated by a time interval T_(Next). The method1600 also includes receiving 1604 patient information at the dataprocessing device 112, and in some examples, storing the receivedpatient information on non-transitory memory 24, 114, 144 associatedwith the processor 112. The method 1600 includes receiving 1606 aselection 226, at the data processing device 112, of a subcutaneousinsulin treatment 900, 1000, 1100, 1200, 1300, 1400 from a collection ofsubcutaneous insulin treatments 900, 1000, 1100, 1200, 1300, 1400. Theselection 226 is based on the blood glucose measurements BG and thepatient information 208 a. The method 1600 also includes executing 1608,using the data processing device 112, the selected subcutaneous insulintreatment 900, 1000, 1100, 1200, 1300, 1400.

In some implementations, the method 1600 includes: receiving aconfigurable constant CFR; storing the configurable constant CFR innon-transitory memory associated with the data processing device; anddetermining a correction factor. The configurable constant CFR may bedetermined from a published statistical correlation. The method 1600 mayalso include determining a pre-meal correction bolus CB, and/or apost-prandial correction bolus CB. The method 1600 may include receivinga half-life value of the rapid-acting insulin; and determining the meanlifetime iLifeRapid of the rapid-acting insulin.

In some implementations, the method 1600 includes receiving a governingblood glucose value BG_(gov), and determining an adjustment factor AFbased on the received governing blood glucose value BG_(gov).Determining the adjustment factor AF may include determining when thegoverning blood glucose value BG_(gov) is within a threshold range ofvalues, and setting the adjustment factor to a preconfigured adjustmentfactor based on the threshold range of values. In some implementations,the method 1600 includes determining a Carbohydrate-to-Insulin Ratio CIRbased on the adjustment factor AF by calculating one of EQs. 42, 44, and46.

The selection of subcutaneous insulin treatments 900, 1000, 1100, 1200,1300, 1400 includes one or more of a subcutaneous standard program 900,a subcutaneous for tube-fed patients program 1000, a subcutaneousprogram without meal boluses 1100, a meal-by-meal subcutaneous programwithout carbohydrate counting 1200, a meal-by-meal subcutaneous programwith carbohydrate counting 1300, and a subcutaneous program fornon-diabetic patients 1400. In some examples, the subcutaneous fortube-fed patients 1000 includes: receiving a blood glucose timeBG_(Time) associated with a time of measuring of the blood glucosemeasurement BG; determining if the blood glucose time BG_(Time) iswithin a threshold time interval; setting a timer 1001, 1101 for a nextblood glucose measurement BG based on the threshold time interval; anddetermining a correction insulin dose CB based on the blood glucose typeBG_(Type).

In some examples, the standard program 900 includes determining a bloodglucose type BG_(Type) of the received blood glucose measurement BG; anddetermining a correction insulin dose CB based on the blood glucose typeBG_(Type). In some examples, the method 1600 includes receiving agoverning blood glucose value BG_(gov), and determining an adjustmentfactor AF based on the received governing blood glucose value and theblood glucose measurement. The method 1600 may also include determininga next recommended meal bolus based on the determined adjustment factorAF and a current recommended meal bolus.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium” and“computer-readable medium” refer to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

Implementations of the subject matter and the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them. Moreover,subject matter described in this specification can be implemented as oneor more computer program products, i.e., one or more modules of computerprogram instructions encoded on a computer readable medium for executionby, or to control the operation of, data processing apparatus. Thecomputer readable medium can be a machine-readable storage device, amachine-readable storage substrate, a memory device, a composition ofmatter affecting a machine-readable propagated signal, or a combinationof one or more of them. The terms “data processing apparatus”,“computing device” and “computing processor” encompass all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal thatis generated to encode information for transmission to suitable receiverapparatus.

A computer program (also known as an application, program, software,software application, script, or code) can be written in any form ofprogramming language, including compiled or interpreted languages, andit can be deployed in any form, including as a stand-alone program or asa module, component, subroutine, or other unit suitable for use in acomputing environment. A computer program does not necessarilycorrespond to a file in a file system. A program can be stored in aportion of a file that holds other programs or data (e.g., one or morescripts stored in a markup language document), in a single filededicated to the program in question, or in multiple coordinated files(e.g., files that store one or more modules, sub programs, or portionsof code). A computer program can be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Moreover, a computer can be embedded inanother device, e.g., a mobile telephone, a personal digital assistant(PDA), a mobile audio player, a Global Positioning System (GPS)receiver, to name just a few. Computer readable media suitable forstoring computer program instructions and data include all forms ofnon-volatile memory, media and memory devices, including by way ofexample semiconductor memory devices, e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto optical disks; and CD ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, one or more aspects of thedisclosure can be implemented on a computer having a display device,e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, ortouch screen for displaying information to the user and optionally akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

One or more aspects of the disclosure can be implemented in a computingsystem that includes a backend component, e.g., as a data server, orthat includes a middleware component, e.g., an application server, orthat includes a frontend component, e.g., a client computer having agraphical user interface or a Web browser through which a user caninteract with an implementation of the subject matter described in thisspecification, or any combination of one or more such backend,middleware, or frontend components. The components of the system can beinterconnected by any form or medium of digital data communication,e.g., a communication network. Examples of communication networksinclude a local area network (“LAN”) and a wide area network (“WAN”), aninter-network (e.g., the Internet), and peer-to-peer networks (e.g., adhoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someimplementations, a server transmits data (e.g., an HTML page) to aclient device (e.g., for purposes of displaying data to and receivinguser input from a user interacting with the client device). Datagenerated at the client device (e.g., a result of the user interaction)can be received from the client device at the server.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the disclosure or of what maybe claimed, but rather as descriptions of features specific toparticular implementations of the disclosure. Certain features that aredescribed in this specification in the context of separateimplementations can also be implemented in combination in a singleimplementation. Conversely, various features that are described in thecontext of a single implementation can also be implemented in multipleimplementations separately or in any suitable sub-combination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multi-tasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims. Forexample, the actions recited in the claims can be performed in adifferent order and still achieve desirable results.

What is claimed is:
 1. A method comprising: receiving, at a dataprocessing device, a glucose measurement of a patient and a glucose timeassociated with measuring the glucose measurement; obtaining, by thedata processing device, patient information for the patient, the patientinformation comprising: a target glucose range for the patient, thetarget glucose range comprising a range of glucose values between andincluding a lower limit glucose value and an upper limit glucose valuegreater than the lower limit glucose value; and sequential scheduledglucose times and sequential time intervals throughout a day forobtaining scheduled glucose measurements of the patient, each sequentialscheduled glucose time occurring within a respective one of thesequential time intervals; determining, by the data processing device,which of the sequential time intervals includes the glucose time for thereceived glucose measurement of the patient; setting, by the dataprocessing device, a countdown timer to a duration of time that expiresat the scheduled glucose time occurring within the sequential timeinterval subsequent to the sequential time interval that includes theglucose time for the received glucose measurement of the patient;determining, by the data processing device, a correction bolus based onthe glucose measurement by calculating:CB=(GM−GM_(Target))/CF; wherein CB is the correction bolus, GM is theglucose measurement, GM_(Target) is a midpoint of the target glucoserange for the patient, and CF is a correction factor; and transmitting,by the data processing device, the correction bolus to a patient displayduring the sequential time interval that includes the glucose time forthe received glucose measurement of the patient, the patient displayconfigured to display a number of units of insulin corresponding to avalue of the correction bolus.
 2. The method of claim 1, furthercomprising executing, by the data processing device, a subcutaneoustreatment program configured to display on a screen in communicationwith the data processing device a graphical user interface, wherein thesubcutaneous treatment program is configured to display, in thegraphical user interface, the countdown timer indicating a remainingtime until the scheduled glucose time occurring within the sequentialtime interval subsequent to the sequential time interval that includesthe glucose time for the received glucose measurement of the patient. 3.The method of claim 2, wherein the subcutaneous treatment program isfurther configured to display, in the graphical user interface, aglucose due message at the scheduled glucose time occurring within thesequential time interval subsequent to the sequential time interval thatincludes the glucose time for the received glucose measurement of thepatient.
 4. The method of claim 1, wherein receiving the glucosemeasurement of the patient comprises receiving the glucose measurementfrom a glucose meter in communication with the data processing device.5. The method of claim 1, wherein receiving the glucose measurement ofthe patient comprises receiving the glucose measurement from acontinuous glucose monitoring system in communication with the dataprocessing device.
 6. The method of claim 1, further comprisingexecuting, by the data processing device, a subcutaneous treatmentprogram configured to display on a screen in communication with the dataprocessing device a graphical user interface, wherein the subcutaneoustreatment program is configured to: display, in the graphical userinterface, a glucose input field, wherein receiving the glucosemeasurement of the patient comprises receiving the glucose measurementvia a manual input to the glucose input field.
 7. The method of claim 1,further comprising: determining the correction factor using the dataprocessing device by calculating:CF=CFR/TDD wherein CF is the correction factor, CFR is a constantdetermined from a statistical correlation, and TDD is a total daily doseof insulin per day.
 8. The method of claim 7, further comprisingdetermining, by the data processing device, the total daily dose (TDD)of insulin for the current day based on all basal doses and correctiondoses of insulin administered to the patient on an immediately previousday.
 9. The method of claim 1, further comprising: determining, by thedata processing device, that the glucose time for the received glucosemeasurement of the patient is before the patient consumes breakfast;determining, by the data processing device, which target range of valuesamong a plurality of target ranges of values includes the receivedglucose measurement of the patient; determining, by the data processingdevice, an adjustment factor for adjusting a current day's recommendedbasal dose for administration to the patient based on the correspondingtarget range of values that includes the received glucose measurement;determining, by the data processing device, a value of the current day'srecommended basal dose by multiplying the adjustment factor times aprevious day's recommended basal dose; and transmitting, by the dataprocessing device, the value of the current day's recommended basal doseto the patient display, the patient display configured to display anumber of units of insulin corresponding to the value of the currentday's recommended basal dose.
 10. The method of claim 9, wherein theplurality of target ranges of values comprises: a first target range ofvalues including glucose values less than a first configurable constant;a second target range of values including glucose values greater than orequal to the first configurable constant and less than the lower limitglucose value of the target glucose range for the patient; a thirdtarget range of values including glucose values greater than or equal tothe lower limit glucose value and less than the upper limit glucosevalue of the target glucose range for the patient; a fourth target rangeof values including glucose values greater than or equal to the upperlimit glucose value and less than a second configurable constant; afifth target range of values including glucose values greater than orequal to the second configurable constant and less than a thirdconfigurable constant; and a sixth target range of values includingglucose values greater than or equal to the third configurable constant.11. A system comprising: a dosing controller including a data processingdevice and a non-transitory computer-readable medium in communicationwith the data processing device, the data processing device configuredto perform operations comprising: receiving a glucose measurement of apatient and a glucose time associated with measuring the glucosemeasurement; obtaining patient information for the patient, the patientinformation comprising: a target glucose range for the patient, thetarget glucose range comprising a range of glucose values between andincluding a lower limit glucose value and an upper limit glucose valuegreater than the lower limit glucose value; and sequential scheduledglucose times and sequential time intervals throughout a day forobtaining scheduled glucose measurements of the patient, each sequentialscheduled glucose time occurring within a respective one of thesequential time intervals; determining which of the sequential timeintervals includes the glucose time for the received glucose measurementof the patient; setting a countdown timer to a duration of time thatexpires at the scheduled glucose time occurring within the sequentialtime interval subsequent to the sequential time interval that includesthe glucose time for the received glucose measurement of the patient;determining a correction bolus based on the glucose measurement bycalculating:CB=(GM−GM_(Target))/CF; wherein CB is the correction bolus, GM is theglucose measurement, GM_(Target) is a midpoint of the target glucoserange for the patient, and CF is a correction factor; and transmittingthe correction bolus to a patient display during the sequential timeinterval that includes the glucose time for the received glucosemeasurement of the patient, the patient display configured to display anumber of units of insulin corresponding to a value of the correctionbolus.
 12. The system of claim 11, wherein the operations furthercomprise executing a subcutaneous treatment program configured todisplay on a screen in communication with the data processing device agraphical user interface, wherein the subcutaneous treatment program isconfigured to display, in the graphical user interface, the countdowntimer indicating a remaining time until the scheduled glucose timeoccurring within the sequential time interval subsequent to thesequential time interval that includes the glucose time for the receivedglucose measurement of the patient.
 13. The system of claim 12, whereinthe subcutaneous treatment program is further configured to display, inthe graphical user interface, a glucose due message at the scheduledglucose time occurring within the sequential time interval subsequent tothe sequential time interval that includes the glucose time for thereceived glucose measurement of the patient.
 14. The system of claim 11,wherein receiving the glucose measurement of the patient comprisesreceiving the glucose measurement from a glucose meter in communicationwith the data processing device.
 15. The system of claim 11, whereinreceiving the glucose measurement of the patient comprises receiving theglucose measurement from a continuous glucose monitoring system incommunication with the data processing device.
 16. The system of claim11, wherein the operations further comprise executing a subcutaneoustreatment program configured to display on a screen in communicationwith the data processing device a graphical user interface, wherein thesubcutaneous treatment program is configured to: display, in thegraphical user interface, a glucose input field, wherein receiving theglucose measurement of the patient comprises receiving the glucosemeasurement via a manual input to the glucose input field.
 17. Thesystem of claim 11, wherein the operations further comprise: determiningthe correction factor using the data processing device by calculating:CF=CFR/TDD wherein CF is the correction factor, CFR is a constantdetermined from a statistical correlation, and TDD is a total daily doseof insulin per day.
 18. The system of claim 17, wherein the operationsfurther comprise determining the total daily dose (TDD) of insulin forthe current day based on all basal doses and correction doses of insulinadministered to the patient on an immediately previous day.
 19. Thesystem of claim 11, wherein the operations further comprise: determiningthat the glucose time for the received glucose measurement of thepatient is before the patient consumes breakfast; determining whichtarget range of values among a plurality of target ranges of valuesincludes the received glucose measurement of the patient; determining anadjustment factor for adjusting a current day's recommended basal dosefor administration to the patient based on the corresponding targetrange of values that includes the received glucose measurement;determining a value of the current day's recommended basal dose bymultiplying the adjustment factor times a previous day's recommendedbasal dose; and transmitting the value of the current day's recommendedbasal dose to the patient display, the patient display configured todisplay a number of units of insulin corresponding to the value of thecurrent day's recommended basal dose.
 20. The system of claim 19,wherein the plurality of target ranges of values comprises: a firsttarget range of values including glucose values less than a firstconfigurable constant; a second target range of values including glucosevalues greater than or equal to the first configurable constant and lessthan the lower limit glucose value of the target glucose range for thepatient; a third target range of values including glucose values greaterthan or equal to the lower limit glucose value and less than the upperlimit glucose value of the target glucose range for the patient; afourth target range of values including glucose values greater than orequal to the upper limit glucose value and less than a secondconfigurable constant; a fifth target range of values including glucosevalues greater than or equal to the second configurable constant andless than a third configurable constant; and a sixth target range ofvalues including glucose values greater than or equal to the thirdconfigurable constant.